哈哈 这道题好离谱啊 正常读入长整形是不行滴!
#include<set>
#include<map>
using namespace std;
typedef long long ll;
const int N =1e5;
map<ll,int> m;
ll a[100010];
string n;//输入字串 转成 整数
int main(){
a[1]=1,a[2]=2;
m[a[1]]=1;
m[a[2]]=2;
for(int i =3;i<=N;i++){
a[i]=a[i-1]+a[i-2];
m[a[i]]=i;
}
ll ans;
while(cin >> n){
ans =0;
for(int i =0;i<n.size();i++){
int t =(n[i]-'0');
ans=ans*10+t;
}
cout<<m[ans]<<endl;
}
return 0;
}