递推数列
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=10010,mod=10000;
LL fn[N];
int main()
{
int a0,a1,p,q,k;
cin>>a0>>a1>>p>>q>>k;
fn[0]=a0,fn[1]=a1;
if(k==1){
cout<<0;
return 0;
}
for(int i=2;i<=k;i++)
fn[i]=(fn[i-1]*p%mod+fn[i-2]*q%mod)%mod;
cout<<fn[k];
return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=10010,mod=10000;
int main()
{
int a0,a1,p,q,k;
cin>>a0>>a1>>p>>q>>k;
if(k==1){
cout<<0;
return 0;
}
int fn;
for(int i=2;i<=k;i++){
fn=(a1*p%mod+a0*q%mod)%mod;
a0=a1,a1=fn;
}
cout<<fn;
return 0;
}
同类题型
视频讲解
⬅️ 递推 🏠 00-刷题理模型 ➡️ 飞行员兄弟
💬 评论