HDU1021
时间:2017-12-07 19:44:36
收藏:0
阅读:219
Fibonacci Again
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 65456 Accepted Submission(s): 30363
Problem Description
There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).
Input
Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000).
Output
Print the word "yes" if 3 divide evenly into F(n).
Print the word "no" if not.
Print the word "no" if not.
Sample Input
0
1
2
3
4
5
Sample Output
no
no
yes
no
no
no
= =。。。一开始用递归,内存超限。。。随后用这个递归得出规律,就是从第二个开始每隔4个就一次YES。。。AC
1 #include <iostream> 2 using namespace std; 3 long FIB(long n); 4 int main() 5 { 6 long n; 7 while(cin>>n) 8 { 9 if(FIB(n)%3==0) 10 cout<<"yes"<<endl; 11 else 12 cout<<"no"<<endl; 13 } 14 15 return 0; 16 } 17 18 long FIB(long n) 19 { 20 if(n==0) return 7; 21 if(n==1) return 11; 22 return FIB(n-1)+FIB(n-2); 23 }
找到规律后:
1 #include <iostream> 2 using namespace std; 3 long FIB(long n); 4 int main() 5 { 6 long n; 7 while(cin>>n) 8 { 9 if(n%4==2) 10 cout<<"yes\n"; 11 else 12 cout<<"no\n"; 13 } 14 15 return 0; 16 }
原文:http://www.cnblogs.com/BOW1203/p/8000641.html
评论(0)