想了一下发现是斐波那契数列.....水题
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <queue>
#include <stack>
#include <map>
#include <vector>
using namespace std; const int maxn=;
long long n;
long long a[maxn]; void init()
{
a[]=; a[]=;
for(int i=;i<=;i++) a[i]=a[i-]+a[i-];
} int main()
{
init();
int T;
scanf("%d",&T);
while(T--)
{scanf("%lld",&n);
int ans;
long long sum=;
for(int i=;;i++)
{
sum=sum+a[i];
if(sum<=n) ans=i;
else break;
}
printf("%d\n",ans);
}
return ;
}