此题也是一道观察规律的问题!!!不可能直接算,否这肯定超时!呵呵!!
先假设a=3,b=4,那么结果是:
0,4,5,3,1,1;呵呵!你是否发现循环了哈!!
那就对了!问题不就解决了吗?哈!
自己创建一个数组来厨房这个循环不就ok了吗?哈哈!
let's go!!!
#include<iostream>
using namespace std;
int main()
{
int a,b,n,A[50],i;
while(cin>>a>>b>>n)
{
if(a==0&&b==0&&n==0)
break;
else
if(n<3)
cout<<"1"<<endl;
else
{
A[1]=1;
A[2]=1;
for(i=3;i<=49;i++)
{
A[i]=(a*A[i-1]+b*A[i-2])%7;
if(A[i]==1&&A[i-1]==1)
break;
}
n=n%(i-2);
if(n==0)
printf("%d\n",A[i-2]);
else
printf("%d\n",A[n]);
}
}
return 0;
}