HDU 1021(斐波那契数与因子3 **)

Posted taskr212

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于HDU 1021(斐波那契数与因子3 **)的主要内容,如果未能解决你的问题,请参考以下文章

什么是斐波那契数列?在日常生活中有什么实例?

HDU 5914 Triangle(打表——斐波那契数的应用)

hdu1568&&hdu3117 求斐波那契数前四位和后四位

HDU 1568 Fibonacci求斐波那契数的前4位/递推式

HDU1250大数+斐波那契数列

斐波那契数和数小方块的类型题分析方法