#TP1008. 游戏

游戏

题目描述

小王和他的朋友们都非常喜欢研究数学问题。

在斐波那契数列中,每个数字都是通过将序列中的前两个数字相加而生成的。我们将从数字 12 开始,因此顺序是 1、2、3、5、8、13、21、34、55、89、...

数字 nnZeckendorf(齐肯多夫) 表示由斐波那契数列中的不同数字组成,这些数字的总和为 nn,其中没有使用斐波那契数列中的两个相邻数字。可以证明,最终答案是唯一的

例如:

21 由单个数字 21 表示;

21 不用 813 表示,即使它们的总和是 21 ,因为 813 在斐波那契数列中是相邻的;

1003889表示。

齐肯多夫(Zeckendorf)定理表示任何正整数都可以表示成若干个不连续的斐波那契数(不包括第一个斐波那契数)之和。

显然,数字 nnZeckendorf 表示始终包含斐波那契数列中不大于 nn 的最大数字。

现在小王给你一个数字 nn,请你按照题目中的 Zeckendorf 表示形式输出数字(按照从大到小的顺序)

输入格式

输入一个整数 nn

输出格式

请输出题目中的 Zeckendorf 表示形式输出数字(按照从大到小的顺序)

样例

100
89 8 3

说明/提示

对于 40%40\% 的数据,1n301 \le n \le 30,且答案最多由三个数字组成。

对于 100%100\% 的数据,1n1061 \le n \le 10^6