HDU1021

来源:互联网 发布:想购买个4星的淘宝店铺 编辑:程序博客网 时间:2024/06/07 21:28

Fibonacci Again

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 61009    Accepted Submission(s): 28508


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.
 

Sample Input
012345
 

Sample Output
nonoyesnonono
//题目要求根据公式判断 fn 是否能够被3整除,可以的话输出 yes 不可以的话输出 no
//但是当出现测试数据达到百万,肯定是找规律的题目,耐下心来仔细研究一下就会发现 n % 4 == 2 的时候都可以被3整除
#include <iostream>using namespace std;int main(){    int n;    while(scanf("%d",&n) != EOF)    {        if(n % 4 ==2)            cout << "yes" << endl;        else            cout << "no" << endl;    }}
//或者利用公式 枚举也可以的
#include <iostream>#include <cstdio>using namespace std;const int MAX_N = 1000010;int f[MAX_N];void init(){f[0] = 7;f[1] = 11;for(int i = 2 ; i < MAX_N ; i ++){f[i] = ( f[i-1]%3 + f[i-2]%3 )%3;}}int main(){init();int n;while(~scanf("%d",&n)){if( f[n] == 0 )printf("yes\n");elseprintf("no\n");}return 0;}



原创粉丝点击