Recamán数列
题目描述
小杨最近发现了有趣的Recamán数列,这个数列的生成规则如下:
- 数列的第一项 a1 是1;
- 对于第 k项(k>1)的计算规则:
- 如果ak−1−k是正整数且未在数列中出现过,则ak=ak−1−k;
- 否则ak=ak−1+k。
小杨想请你计算Recamán数列的前n项从小到大排序后的结果。
输入格式
第一行包含一个正整数n。
输出格式
输出一行n个空格分隔的整数,表示前n项从小到大排序后的结果。
样例
输入样例1
5
输出样例1
1 2 3 6 7
样例解释
对于样例1,n=5:
- a1=1
- a2=a1+2=3(因为1−2=−1不是正整数)
- a3=a2+3=6(因为3−3=0不是正整数)
- a4=a3−4=2(因为6−4=2是正整数且未出现过)
- a5=a4+5=7(因为2−5=−3不是正整数)
排序结果为:1 2 3 6 7
数据范围
对于所有测试数据,保证1≤n≤3000。