Mn Zn 求助 60Pt
查看原帖
Mn Zn 求助 60Pt
1001542
K_func楼主2024/12/21 18:46
#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,保证没有问题

2024/12/21 18:46
加载中...