如果直接按照公式递归的求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;
}
本文介绍了一种解决特定递归数列问题的方法,通过寻找余数周期规律,简化了大数运算过程,实现快速判断数列项是否能被3整除。
5万+

被折叠的 条评论
为什么被折叠?



