2015春季练习——一道水题的思考

来源:互联网 发布:mac brave 编辑:程序博客网 时间:2024/04/25 12:39

来源:HDU1021

这个题目其实很简单,但是我的答案和书上的答案不同,所以和大家分享。

书上答案是使用打表,但是实际上可以寻找循环节。。。

书上代码:

#include <iostream>#include <cstdio>using namespace std;const int MAXN=1000010;int d[MAXN];void pre_solve(){    int i;    d[0]=1;    d[1]=2;    for(i=2;i<1000000;i++)        d[i]=(d[i-1]%3+d[i-2]%3)%3;}int main(){    pre_solve();    int n;    while(scanf("%d",&n)!=EOF){        if(!d[n])puts("yes");        else puts("no");    }return 0;}
循环节:

#include <iostream>#include <cstdio>using namespace std;int main(){int n;while(scanf("%d",&n)!=EOF){        if(n%4==2)cout<<"yes"<<endl;        else cout<<"no"<<endl;}return 0;}



1 0
原创粉丝点击