【HDOJ】1021 Fibonacci Again

【题目】http://acm.hdu.edu.cn/showproblem.php?pid=1021

【报告】

    题意是问F[i]是否能被3整除。

    根据 (a+b)%m=(a%m+b%m)%m 原则(具体自行证明),所以可以直接把F[i]%3,直接加就行了。

    直接预处理出所有答案,输入一个输出一个即可。

【程序】

// Task: 1021 Fibonacci Again
// Designer: Rsky 2013/08/12
#include
#include
using namespace std;
const int N = 1000000;
int f[N+1];
int main()
{
    memset(f,255,sizeof(f));
    f[0]=7%3;f[1]=11%3;
    for (int i=2;i<=N;i++)
        f[i]=(f[i-1]+f[i-2])%3;
    int t;
    while (cin >> t)
        if (f[t]==0)
            cout << "yes" << endl;
        else cout << "no" << endl;
    return 0;
}

posted @ 2013-08-12 19:57  为美好世界献上珂学  阅读(131)  评论(0)    收藏  举报