看到递推关系式就知道肯定不能直接按公式进行计算了,再说第1000000个数是非常大的,那么就要找一些其他办法,注意到题目只要求判断是否能被3整除,那么只要F(n-1)%3+F(n-2)%3=3或0就可以了,这样的话模可能的组合就只有9种情况,进行十次运算就能出现循环,手算可知没8个数一个循环,{1,2,0,2,2,1,0,1},那么现在就是看n与8的模就可以了,代码如下:
#include <iostream>
using namespace std;
int main()
{
int a[8]={1,2,0,2,2,1,0,1};
int n;
while(cin>>n){
if(a[n%8]!=0) cout<<"no"<<endl;
else cout<<"yes"<<endl;
}
return 0;
}