您的位置:首页 > 其它

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

2016-03-18 22:34 141 查看
来源: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
)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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: