#include <bits/stdc++.h>
using namespace std;
long long n;
constexpr long long Mod=1e9+7;
typedef pair<long long,long long> multi;
multi fibonacci(long long x){
multi ans,tmp;
if(x==1){
ans.first=1;
ans.second=0;
return ans;
}
tmp=fibonacci(x>>1);
ans.first=(tmp.first*tmp.first+((tmp.second*tmp.first)<<1))%Mod;
ans.second=(tmp.first*tmp.first+tmp.second*tmp.second)%Mod;
if(x&1){
swap(ans.first,ans.second);
ans.first+=ans.second;
}
return ans;
}
int main(){
cin>>n;
cout<<fibonacci(n).first;
return 0;
}
用这个 斐波那契数列 过了 P1506,保证没有问题