思路:打表,数组保存,每个数对3取余。保存所有的数。然后询问一个判断输出一个。
代码:
#include <iostream>
#include <cstdio>
using namespace std;
const int MAX_ = 1000010;
int f[MAX_];
void init(){
f[0]= 1; f[1] = 2;
for(int i = 2; i < MAX_; ++i){
f[i] = (f[i-1] + f[i-2])%3;
}
}
int main(){
//freopen("f:\\out.txt","w",stdout);
long long n;
init();
while(cin>>n){
if(f[n]){
cout<<"no";
}
else cout<<"yes";
cout<<endl;
}
return 0;
}