300663: CF126D. Fibonacci Sums

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Fibonacci Sums

题意翻译

计算一个整数被分解成若干个各不相等的Fibonacci数列中的数的方案; 每个测试点有多个数据; 输入:第一行有一个整数n,n<=1e5,之后第2行至第n+1行每行一个整数。表示需要计算被分解的方案的整数;每个整数的范围均属于[1,1e18]; 输出:共n行,每行一个整数,表示对应的整数被分解的方案总数 感谢@daifucong 提供的翻译

题目描述

Fibonacci numbers have the following form: $ F_{1}=1, $ $ F_{2}=2, $ $ F_{i}=F_{i-1}+F_{i-2},i>2. $ Let's consider some non-empty set $ S={s_{1},s_{2},...,s_{k}} $ , consisting of different Fibonacci numbers. Let's find the sum of values of this set's elements: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF126D/5ab7141541105d7a2a0738fb86760948628a7a20.png)Let's call the set $ S $ a number $ n $ 's decomposition into Fibonacci sum. It's easy to see that several numbers have several decompositions into Fibonacci sum. For example, for $ 13 $ we have $ 13,5+8,2+3+8 $ — three decompositions, and for $ 16 $ : $ 3+13,1+2+13,3+5+8,1+2+5+8 $ — four decompositions. By the given number $ n $ determine the number of its possible different decompositions into Fibonacci sum.

输入输出格式

输入格式


The first line contains an integer $ t $ — the number of tests ( $ 1<=t<=10^{5} $ ). Each of the following $ t $ lines contains one test. Each test is an integer $ n $ ( $ 1<=n<=10^{18} $ ). Please do not use the %lld specificator to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specificator.

输出格式


For each input data test print a single number on a single line — the answer to the problem.

输入输出样例

输入样例 #1

2
13
16

输出样例 #1

3
4

说明

Two decompositions are different if there exists a number that is contained in the first decomposition, but is not contained in the second one. Decompositions that differ only in the order of summands are considered equal.

Input

题意翻译

计算一个整数被分解成若干个各不相等的Fibonacci数列中的数的方案; 每个测试点有多个数据; 输入:第一行有一个整数n,n<=1e5,之后第2行至第n+1行每行一个整数。表示需要计算被分解的方案的整数;每个整数的范围均属于[1,1e18]; 输出:共n行,每行一个整数,表示对应的整数被分解的方案总数 感谢@daifucong 提供的翻译

加入题单

上一题 下一题 算法标签: