zoukankan      html  css  js  c++  java
  • (HDU)1021 --Fibonacci Again(又是斐波那契)

    描述:
    
    还有另一种斐波纳契数:F(0)= 7,F(1)= 11,F(n)= F(n-1)+ F(n-2)(n> = 2)。
    
    
    输入
    输入由一系列行组成,每行包含一个整数n。 (n <1,000,000)。
    
    
    输出
    如果F(n)可以被3整除,则输出单词“yes”。
    
    如果不可以,输出单词“no”。
    题目

    这个题目找规律就好了,因为n的范围比较大,如果递推肯定是超时的。

    注意:a%c+b%c=(a+b)%c

    最多有3*3=9种可能性,可以试着打表mod3的结果:

    F(0)余1  F(1)余2  F(2)余0  F(3)余2  F(4)余2  F(5)余1  

    F(6)余0  F(7)余1  F(8)余1  F(9)余2

    F(8)和F(9)开始对应F(0)和F(1),因此循环节找到了,周期为8。

    F(8k+*) 1 2 3 4 5 6 7 0
    2 0 2 2 1 0 1 1
    判断 no yes no no no yes no no
     1 #include <iostream>
     2 #include <cstdio>
     3 
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int n,m[8]={1,2,0,2,2,1,0,1};
     9     while(~scanf("%d",&n))
    10     {
    11         n=m[n%8];
    12         if(n==0) printf("yes
    ");
    13         else printf("no
    ");
    14     }
    15     return 0;
    16 }
    代码
  • 相关阅读:
    LOJ #6183 看无可看
    BZOJ 5467 Slay the Spire
    BZOJ 5306 [HAOI2018] 染色
    BZOJ 2784 时间流逝
    BZOJ4911: [Sdoi2017]切树游戏
    min-max 容斥
    BZOJ 5475: [WC 2019] 数树
    BZOJ 2810 [Apio2012]kunai
    Codeforces round 1083
    详解大数据数据仓库分层架构
  • 原文地址:https://www.cnblogs.com/ACDoge/p/6125638.html
Copyright © 2011-2022 走看看