问题描述
数字序列定义如下:
f(1)= 1,f(2)= 1,f(n)=(A * f(n - 1)+ B * f(n - 2))mod 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 0 0 0
#include <iostream>
using namespace std;
int main()
{
int A,B,n;
while(cin>>A>>B>>n)
{
if(A==0&&B==0&&n==0) break;
int data[49]={1,1};
for(int i=2;i<49;i++)
data[i]=(A*data[i-1]+B*data[i-2])%7;
cout<<data[(n-1)%49]<<endl;
}
return 0;
}