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 Sample Output
Print the word "no" if not.
012345
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;}