0
点赞
收藏
分享

微信扫一扫

斐波那契数列?

爱读书的歌者 2022-04-13 阅读 91
c++

相信小伙伴们都学过斐波那契数列,它是这样的一个数列:1,1,2,3,5,8,13,21\cdots1,1,2,3,5,8,13,21⋯。

用 f_nfn​ 表示斐波那契数列的第 nn 项,则有:f_1 = f_2 = 1f1​=f2​=1,f_n = f_{n-1} + f_{n-2} (n>2)fn​=fn−1​+fn−2​(n>2)。

为了提高难度,蒜头君决定修改公式,如下:

用 f_nfn​ 表示新数列的第 nn 项,则有:f_1 = f_2 = 1f1​=f2​=1,f_n =a f_{n-1} + bf_{n-2} (n>2)fn​=afn−1​+bfn−2​(n>2)。

输入格式

输入每行包含 44 个整数 n(1 \le n \le 100)n(1≤n≤100),a( 1 \le a \le 10)a(1≤a≤10),b(1 \le b \le 10)b(1≤b≤10),p(1 \le p \le 2000)p(1≤p≤2000)。

输出格式

输出 f_nfn​ 对 pp 取模的值。

格式说明

输出时每行末尾的多余空格,不影响答案正确性

样例输入

3 1 1 1000

样例输出

2
#include <iostream>
using namespace std;
int n,a,b,c;
int f(int x){
if(x==1||x==2){
return 1;
}
else{
return (a*f(x-1)+b*f(x-2))%c;
}
}
int main() {
cin>>n>>a>>b>>c;
cout<<f(n)<<endl;
return 0;
}
举报

相关推荐

0 条评论