HDU 1005 NumberSequence

来源:互联网 发布:如何看待陈光标知乎 编辑:程序博客网 时间:2024/05/17 21:38
/************************Date:2016/05/17-by*Exp:求余问题一般有规律************************/#include <iostream>#define N 50//由于两个数对7求余,所以可能出现的最大循环次数为7*7using namespace std;int arr[N];int main(){    int A,B,n;    arr[1] = arr[2] = 1;    while(cin>>A>>B>>n, A || B || n){        int i;        for(i=3; i<N ;i++){            arr[i] = (A * arr[i - 1] + B * arr[i - 2]) % 7;            //如果有两个连着 =1,则后面的全部和前面相同,即出现了周期i-2            if(arr[i] == 1 && arr[i-1] == 1)                break;        }        arr[0] = arr[i-2];        cout << arr[n%(i-2)] << endl;    }    return 0;}

2 0