hdu1021(Fibonacci)

    xiaoxiao2021-04-17  30

    这道题要找规律,找完规律后发现简单到要死。

    下标 0  1  2  3  4  5  6  7  8  9  10  11  12  13 值  1  2  0  2  2  1  0  1  1  2   0    2     2   1 输出  no   no  yes  no no    no  yes  no  no  no    yes   no  no  no 这样我们就得到了如下规律:从第2个开始每隔4个循环一次。

    法一:找规律,T=4

    #include <stdio.h> int main() { int i,n; while (~scanf("%d",&n)) { if((n-2)%4==0) printf("yes\n"); else printf("no\n"); } return 0; } 法二:T=8 #include<stdio.h> int main() { int f[10],n,i; while(scanf("%d",&n)!=EOF) { n=n%8; f[0]=7;f[1]=11; for(i=2;i<=n;i++) f[i]=f[i-1]+f[i-2]; if(f[n]%3==0) printf("yes\n"); else printf("no\n"); } return 0; }

    法三:(似懂非懂)

    #include <stdio.h> int a[1000009]; int i; int main () { int n; a[0] = 7 % 3; a[1] = 11 % 3; for ( i = 2; i < 1000009; i ++ ) { a[i] = ( a[i - 1] + a[i - 2] ) % 3; } while ( scanf ("%d", &n) != EOF ) { if ( !a[n] ) printf ("yes\n"); else printf ("no\n"); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-673476.html

    最新回复(0)