HDU 1021 Fibonacci Again(找规律)

来源:互联网 发布:网络歌曲视频下载 编辑:程序博客网 时间:2024/04/29 10:52

Fibonacci Again

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


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
 

Author
Leojay

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1021

题解:取模的题还是找规律,容易知,此题的结果为以8为周期的序列,通过求出前8个的结果也就知道了结果.
再对结果对3取模后,发现结果也有规律,也是个循环序列,前两个除外,此时便找到了一个更加好的方法.

AC代码:

#include<iostream>using namespace std;int a[10];int main(){    a[0]=1,a[1]=11;    int n;    for(int i=2;i<8;i++)    {        a[i]=(a[i-1]+a[i-2]);    }    while(cin>>n)    {        if((a[n%8])%3==0)            cout<<"yes"<<endl;        else            cout<<"no"<<endl;    }    return 0;}

AC代码2(优化版)

#include <iostream>using namespace std;int main(){    int n;    while(cin>>n)    {        if((n+2)%4==0)            cout<<"yes"<<endl;        else            cout<<"no"<<endl;    }    return 0;}


0 0
原创粉丝点击