• 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;
    }
    

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

  • 相关阅读:
    04_特征工程
    03_特征清洗
    02_数据探索
    01_简介
    cache是什么文件?
    gulp详细入门教程
    HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)
    h4和h5的区别
    弹性盒布局
    js面向对象
  • 原文地址:https://www.cnblogs.com/miaowTracy/p/4836757.html
Copyright © 2020-2023  润新知