Hdoj 1021 Fibonacci Again (找规律)

来源:互联网 发布:日本动画片制作软件 编辑:程序博客网 时间:2024/05/22 14:19

思路:因为n最大有1000000,所以普通做法肯定超时或者超范围,所以观察规律,前两项的对3取模,得到的值相加等于3,则yes,否则no

代码如下:

#include <stdio.h>#include <stdlib.h>#include <string.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) {int fb[10];fb[0]=1;fb[1]=2;int n;int i;while(scanf("%d",&n)!=EOF){n=n%8;for(i=2;i<=n;i++){fb[i]=(fb[i-2]+fb[i-1])%3;}if(fb[n]==0)printf("yes\n");elseprintf("no\n");}return 0;}