zoukankan      html  css  js  c++  java
  • HDU1021---Fibonacci Again

    http://acm.hdu.edu.cn/showproblem.php?pid=1021

    Fibonacci Again

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 58897    Accepted Submission(s): 27542


    Problem Description
    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).  ??      3均匀的将F(n)分割??

    Print the word "no" if not.
     
    Sample Input
    0 1 2 3 4 5
     
    Sample Output
    no no yes no no no
    一脸懵逼。。此题啥意思??
     
    由同余式的基本性质:
    (1)自反性:a = a( mod m)。
    以及同余式的四则运算法则:
    (1)如果 a =b( mod m)且 c = d( mod m),则 a +c = (b + d)( mod m)。
    可知,F(n) = F(n) ( mod m) = ( F(n-1) +F(n-2) )( mod m)。
     
    根据题目已知条件:
    Print the word”yes” if 3 divide evenly into F(n);Print the word”no” if not.
    这里m取值为3,则可将公式条件演变为:
    综上所述,可得到以下对应关系:F(0)= 1, F(1) = 2, F(n) = ( F(n-1) + F(n-2)  )( mod 3) (n>=2).
    index  0  1  2  3  4  5  6  7  8  9  10  11  12  13
    value  1  2  0  2  2  1  0  1  1  2   0   2   2  1
    print  no no yes no  no no yes  no  no  no  yes  no  no  no
    这样我们就得到了如下规律:从第2个开始每隔4个循环一次。
     
     
    #include "iostream"
    #include "cstdio"
    using namespace std;
    
    int main()
    {
        int n;
        while(scanf("%d", &n) !=EOF)
        {
            if((n-2)%4!=0)
               printf("no
    ");
            else
               printf("yes
    ");
        }
    return 0;
    }
  • 相关阅读:
    线程之Thread
    如何通过HTTP优雅调用第三方-Feign
    Spring AOP核心源码
    Spring-beans之BeanFactory初始化
    spring-core源码走读
    power of two
    排序算法(二)两种选择排序
    排序算法(一)四种冒泡排序
    约瑟夫问题
    我理解的CLH
  • 原文地址:https://www.cnblogs.com/kimsimple/p/6517542.html
Copyright © 2011-2022 走看看