题意是要求能被3整除的数
所以为了避免大数据的产生,直接对每个数据求余,然后相加
1 #include "iostream" 2 using namespace std; 3 4 int main(void) 5 { 6 int i=0; 7 int flag=1; 8 unsigned long fib[3]; 9 fib[0]=7; 10 fib[1]=11; 11 while(cin>>i) 12 { 13 14 if(i<2) 15 { cout<<"no"<<endl;} 16 else 17 { 18 for(int j=2;j<=i;j++) 19 { 20 fib[2]=fib[1]+fib[0]; 21 fib[0]=fib[1]%3;//求余 22 fib[1]=fib[2]%3;//求余,不然数据会溢出 23 24 } 25 //cout<<fib[2]; 26 if(fib[2]%3==0) 27 cout<<"yes"<<endl; 28 else cout<<"no"<<endl; 29 } 30 fib[0]=7; 31 fib[1]=11; 32 33 } 34 return 0; 35 }
斐波那契数列很容易产生大数据,这个问题一定要注意....