杭电acm 1021题

题意是要求能被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 }

斐波那契数列很容易产生大数据,这个问题一定要注意....

posted on 2014-04-13 14:36  笑侃码农  阅读(394)  评论(0编辑  收藏  举报