题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1021
题目大意
F(n) = F(n-1) + F(n-2) (n>=2).是否能被3整除
先利用
for(int i=2;i<10;++i){
f[i]=f[i-1]+f[i-2];
if(f[i-1]==f[0]&&f[i]==f[1])
{
cout<<f[i-1]<<","<<f[i]<<endl;
break;
}
}
找出循环节
#include <iostream>
#include<vector>
#include<cstdio>
using namespace std;
const int maxn=100000;
int f[maxn];
int main()
{
//freopen("in.txt","r",stdin);
vector<string>v;
f[0]=7;
f[1]=11;
v.push_back("no");
v.push_back("no");
for(int i=2;i<10;++i){
f[i]=f[i-1]+f[i-2];
if(f[i]%3==0)v.push_back("yes");
else v.push_back("no");
}
int n;
while(cin>>n){
cout<<v[n%8]<<endl;
}
return 0;
}