#257. 求一个数是斐波那契数列的第几项

求一个数是斐波那契数列的第几项

题目描述

斐波那契数列是这样的一个数列:

fib(1)=1fib(1) = 1 fib(2)=1fib(2) = 1 fib(n)=fib(n1)+fib(n2)fib(n) = fib(n - 1) + fib(n - 2)

给定一个64位无符号整数n,求这个数是斐波那契数列的第几项。

如果它是数列中的一个数,则输出它的位置。

反之,则输出Not fib

特殊地,如果输入1,请输出1(它的最早出现位置)。

输入格式

为防止骗分,每组数据有t个测试数据。

对于每一个测试数据,输入一个64位无符号整数n。

输出格式

对于每一个测试数据,按题目中的描述输出。

样例数据

1
1
1
2
2
3
3
4

限制

对于每个测试点,限制1000ms,256MB。

对于 10% 的测试点,t = 1;

对于 80% 的测试点,t <= 10,和/或 n 在 unsigned int 范围内;

对于 100% 的测试点,t <= 20,n 在 unsigned long long 范围内。

TIPS:fib (47) 已超出unsigned long long 范围。