zoukankan      html  css  js  c++  java
  • HDOJ 1021 Fibonacci Again 【数论】

    HDOJ 1021 Fibonacci Again 【数论】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1021


    题目就是重新定义了一个斐波那契数列
    给定数列的某一项 如果该项的斐波那契数可以被3整除输出yes
    否则输出no


    1、【两个数的和】的【各位之和】 == 两个【数的各位之和】的【和】
    2、能被3整除的数的【各位之和】也能被3整除
    3、所以,得出公式 ( a + b ) % 3 = ( a % 3 + b % 3) % 3
    然后预处理做个表就可以了


    #include<iostream>
    #include<cstdio>
    using namespace std;
    #define clr(c) memset(c, 0, sizeof(c));
    const int INF = 0x3f3f3f3f;
    typedef long long ll;
    int n;
    int fib[1000005];
    void Pre(){
        fib[0] = 7 % 3;
        fib[1] = 11 % 3;
        for(int i = 2; i <= 1000000; i++){
            fib[i] = ((fib[i-1] % 3) + (fib[i-2] % 3)) % 3;
        }
    }
    
    int main(){
        Pre();
        while(~scanf("%d", &n)){
            if(fib[n]) puts("no");
            else puts("yes");
        }
    
        return 0;
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    常见问题
    查询
    多对多关系
    prototype & __proto__
    new operator
    用户
    express.Router
    Express 应用生成器
    LeanCloud
    npm常用命令
  • 原文地址:https://www.cnblogs.com/miaowTracy/p/4836757.html
Copyright © 2011-2022 走看看