Processing math: 100%
编程题
                ### 问题描述

你现在有一个宽为 1 格,长度为无限的棋盘,每个格子初始没有棋子。

你现在手上有 n 个棋子,接下来你将把棋子一颗一颗地放在棋盘的最右边。在每一颗棋子放下后,棋子会自己移动,移动规律如下:如果这颗棋子所在格子的左边还存在格子且这个格子的的棋子数量不多于这颗棋子所在的格子的棋子数量,则这颗棋子移动到左边的格子,接着重复上述移动,直到棋子这颗棋子无法再次移动。

当所有棋子放入棋盘且不再移动后,从左到右输出每个格子的棋子的数量,直到后面的格子不再有棋子出现。

输入格式

输入一个正整数 n

输出格式

从左到右输出每个格子的棋子的数量。

输入样例

4

输出样例

3 1

说明

放入四颗棋子的情况如下:

第一颗: 1

第二颗: 2

第三颗: 2 1

第四颗: 3 1

在放入第四颗时,第四颗棋子先移动到第三个格子,变成 2 1 1 。这时由于第二格的棋子不多于第三格的棋子,所以第四颗棋子移动到第二格,变为 2 2 。又因为第一格的棋子不多与第二格的棋子,所以第四颗棋子移动到第一格子,变为最终结果 3 1

评测数据规模

对于所有评测数据, 2n106

查看答案
赣ICP备20007335号-2