如果直接按照公式递归的求f(n),求不到那么大的数。
题目要求是判断是否能被3整除,这种题目可以试试找找规律。
列出前20个f(n),试试mod3求余数,发现余数以8为周期。分别为1 2 0 2 2 1 0 1。
所以只需要先将输入的n对8求余,判断所得余数是否为2或者6。
#include<iostream>
using namespace std;
int main()
{
int i;
while(cin>>i)
{
i=i%8;
if(i==2||i==6)cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}