题意:给定一个斐波那契数列,判断哪些能被3整除,输出yes,否则输出no。
解题思路:利用模算数(a+b)%c = (a%c+b%c)%c进行判断。
Code:
#include <iostream>
using namespace std;
int f[1000001];
int main()
{
int i,n;
f[0]=7;f[1]=11;
for(i=2;i<=1000000;i++)
f[i]=(f[i-1]%3+f[i-2]%3)%3;
while(cin>>n)
{
if(n<2) cout<<"no"<<endl;
else
{
if(f[n]==0)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
}
return 0;
}