问题说明
一个数字序列被定义如下:F(1)= 1,F(2)= 1,F(N)=(A * F(N - 1)+ B* F(N - 2))模7。鉴于A,B,和N,你要计算F(n)的值。
输入
输入由多个测试用例。每个测试用例包含3个整数A,B和N在一行(1<= A,B<=1000,1<= N<=100,000,000)。三个零信号输入的端部和该测试的情况下是不进行处理。
输出
对于每个测试用例,打印F(N)在一行的价值。
样本输入
1 1 3
1 2 10
000
样本输出
2
5
#include<stdio.h>
int f(int n,int a,int b)
{
if(n==1||n==2) return 1;
return(a*f(n-1,a,b)+b*f(n-2,a,b))%7;
}
int main()
{
int n,a,b;
while(scanf("%d %d %d",&a,&b,&n)&&(a||b||n)!=0) printf("%d\n",f(n%49,a,b));
return 0;
}