HDU

来源:互联网 发布:java项目开发文档模板 编辑:程序博客网 时间:2024/06/10 00:08

根据题意我们可以知道每一项可以对 3 取模

这样的话 因为是前两项递推,所以最多有 3*3 种可能,所以9项之内就可以出现循环,

对于这种类型的题可以直接打表做


#include <iostream> #include <cstdio>#include <string>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <vector>#include <set>#include <stack>#include <map>#include <climits>using namespace std;typedef long long ll;const int maxn = 10000 + 7, INF = 0x3f3f3f3f;int f[17] = {1, 2};int a;int main() {    for(int i = 2; i < 10; ++i)        f[i] = ( f[i-1] + f[i-2] ) % 3;    while(~scanf("%d", &a)) {        if(f[a%8] == 0) puts("yes");        else puts("no");    }    return 0;}