zoukankan      html  css  js  c++  java
  • HDU 1021(斐波那契数与因子3 **)

    题意是说在给定的一种满足每一项等于前两项之和的数列中,判断第 n 项的数字是否为 3 的倍数。

    斐波那契数在到第四十多位的时候就会超出 int 存储范围,但是题目问的是是否为 3 的倍数,也就是模 3 值为 0 ,考虑到余数只有0,1,2,而且每项由前两项求和得到,也就是说余数一定会出现循环的规律,从首项开始,前 8 项模 3 的结果是:1 2 0 2 2 1 0 1,接下来的两项模 3 的结果仍是 1 2 ,那么整个序列就呈现出以 8 为周期的特点,只要模 8 的结果为 3 或者 7 就输出 yes,否则输出 no,注意序列是从第 0 项开始的,所以 n 每次都要减掉 1.

     1 #include <cstdio>
     2 int main()
     3 {
     4     int n;
     5     while(~scanf("%d",&n))
     6     {
     7 //        if(n == 0 || n == 1) puts("no");
     8 //        else
     9 //        {
    10 //            n -= 2;
    11 //            if(n % 4 == 0) puts("yes");
    12 //            else puts("no");
    13 //        }
    14         n++;
    15         if(n%8 == 3 || n%8 == 7) puts("yes");
    16         else puts("no");
    17     }
    18     return 0;
    19 }
    View Code
    日后若能有更好的想法,再来完善。 希望看到的大神不吝赐教 orz
  • 相关阅读:
    与DSP通信时,RD&WR信号
    4.2.1 Vector bit-select and part-select addressing
    数据校验
    数据结构 (树,图)
    ASOP编译说明
    os
    20180203-增与查
    yum安装MariaDB
    20180202之engine,URL,base,session
    列表
  • 原文地址:https://www.cnblogs.com/Taskr212/p/9498566.html
Copyright © 2011-2022 走看看