递推问题求助,
题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。
输入:
输入包括5个整数:a0、a1、p、q、k。
输出:
第k个数a(k)对10000的模。
样例输入:
20 1 1 14 5样例输出:
8359
下面是我自己写的代码,感觉没什么问题,但是上交以后总是报错
哪位高手给说说是什么问题,多谢了
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a0,a1,p,q,k,num,i;
cin>>a0>>a1>>p>>q>>k;
//cin>>k;
//p=1;
//q=1;
//a0=1;
//a1=1;
p%=10000;
q%=10000;
if(k==0)
{
cout<<a0%10000<<endl;
return 0;
}
if(k==1)
{
cout<<a1%10000<<endl;
return 0;
}
for(i=2;i<=k;i++)
{
a0%=10000;
a1%=10000;
a0=(a0*q)%10000;
a1=(a1*p)%10000;
num=(a0+a1)%10000;
a0=a1;
a1=num;
}
cout<<num<<endl;
return 0;
}