2的64次-1 long long 存不了 所以要用 unsigned long long
https://ac.nowcoder.com/acm/contest/5758/F
这里有个大部分类型的范围
#include<bits/stdc++.h>
using namespace std;
int main(){
unsigned long long a[105]={};
a[1]=1;
a[2]=1;
for(int i=3;i<=100;i++){
a[i]=a[i-1]+a[i-2];
}
int t;
cin>>t;
while(t--){
unsigned long long n;
cin>>n;
unsigned long long sum=0;
for(int i=1;i<=100;i++){
if(n<a[i]){
break;
}
else{
n=n-a[i];
sum++;
}
}
cout<<sum<<endl;
}
}