计算Recamán数列前n项并排序输出
类型:程序题

题目描述

Recamán 数列生成规则如下:

  1. 数列第一项 $a_1 = 1$
  2. 若 $a_{k-1} - k$ 是正整数且未在数列中出现过,则第 $k$ 项 $ak = a{k-1} - k$,否则 $ak = a{k-1} + k$ 请你计算 Recamán 数列的前 $n$ 项,从小到大排序后输出结果。

输入格式

第一行一个正整数 $n$。

输出格式

一行,$n$ 个空格分隔的整数,表示排序后的结果。

输入样例1

5

输出样例1

1 2 3 6 7

输入样例2

8

输出样例2

1 2 3 6 7 12 13 20

样例解释

对于样例1,$n=5$:

  • $a_1 = 1$
  • $a_1 - 2 = -1$ 不是正整数,因此 $a_2 = 1 + 2 = 3$
  • $a_2 - 3 = 0$ 不是正整数,因此 $a_3 = 3 + 3 = 6$
  • $a_3 - 4 = 2$ 是正整数且未出现过,因此 $a_4 = 2$
  • $a_4 -5 = -3$ 不是正整数,因此 $a_5 = 2 +5 =7$ 前5项为 $[1,3,6,2,7]$,排序后结果为 1 2 3 6 7。

数据范围

对于所有数据,保证 $1 \le n \le 3000$

代码编辑器 加载中...
测试用例(F10) 运行测试(F11) 提交答案(F12)
测试用例输入
{{resultStatus.text}}