题目链接:http://pipakaca.com/problem.php?cid=1037&pid=0
这道题对JAVA选手非常友好,JAVA里面有大数可以直接调用,而且也有写好的二分查找:
import java.math.*;
import java.util.*;
public class Main {
public static void main(String[] args){
BigInteger arr[]=new BigInteger[10010]; //数组存储fib某一位
arr[0]=BigInteger.ZERO;
arr[1]=BigInteger.ONE;
for(int i=2;i<arr.length;i++)
arr[i]=arr[i-1].add(arr[i-2]);
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
while(t--!=0){
BigInteger a=sc.nextBigInteger();
int ans=Arrays.binarySearch(arr,a); //二分查找位置
System.out.println(ans==1?2:ans);
}
}
}