R

来源:互联网 发布:windows无权访问 编辑:程序博客网 时间:2024/04/30 15:41
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

 刚开始觉的数据挺大,要用大数打表,先把1到N的斐波契那全搞出来,然后再求余;但想到之前做过的一道题,发现像这种大数和求余结合在一起的题,其实可以利用求余将

大数给化解,用普通的数组就能解决,也就是一边斐波契那,一边求余;

#include <iostream>#include <cstdio>#include <cstring>#include<algorithm>#include<string>#include<map>using namespace std;int a[1000001];int main(){    int T;    //freopen("1.txt","r",stdin);    memset(a,0,sizeof(a));a[0]=1,a[1]=2;    for(int i=2;i<=1000000;i++){        a[i]=a[i-1]+a[i-2];a[i]%=3;    }    while(scanf("%d",&T)!=EOF)    {        if(a[T]==0)cout<<"yes\n";        else cout<<"no\n";    }    return 0;}

原创粉丝点击