Fibonacci Again
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25104 Accepted Submission(s): 12153
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
解题思路:
先编写一个代码找规律,输出F[i] % 3 == 0 ( 0 <= i < 100);
结果输出:#include <iostream> using namespace std; int main() { int i , n , F[101]; F[0] = 7; F[1] = 11; for(i = 2 ; i < 100; i++) { F[i] = F[i-1] + F[i-2]; if(F[i] % 3 == 0) printf("%d " ,i); } return 0; }
2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 66 70 74 78 82 86 90 94 98
规律:每一个数减二都可以整除四;
最终代码:
总结:大多数简单的数学问题都是有规律可寻 ,要加强统计能力;#include <iostream> using namespace std; int main() { int n ; while(scanf("%d" , &n) != EOF) { if((n-2) % 4 == 0) printf("yes\n"); else printf("no\n"); } return 0; }