hdoj1005解题报告

来源:互联网 发布:室内设计软件哪个好 编辑:程序博客网 时间:2024/06/03 15:47

题意:

f(1) = 1, f(2) = 1, 

f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.

输入A,B和n,输出f(n);

#include <iostream>using namespace std;int main(){    int f[1010];    int A, B;    int64_t n;    while (cin)    {        f[1] = 1, f[2] = 1;        cin >> A >> B >> n;        if ( A == 0 && B == 0 && n == 0)break;        int i;        for (i = 3; i <= n; i++)        {            f[i] = (A * f[i - 1] + B * f[i - 2]) % 7;            for(int j=2;j<i;j++)                if(f[j-1]==f[i-1]&&f[j]==f[i])                {                    n=(n-j)%(i-j)+j;                    break;                }        }        cout << f[n] << endl;    }    return 0;}


0 0
原创粉丝点击