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).Print the word “no” if not.
Simple Input
0
1
2
3
4
5Sample Output
no
no
yes
no
no
no
思路
1、题目意思就是F(n)%3==0即可。所以可以找规律,
// n :0 1 2 3 4 5 6 7 8 9 10 11 12 13
//F(n)mod3 : 1 2 0 2 2 1 0 1 1 2 0 2 2 1
可以看出每8个为一组。
代码
//n 0 1 2 3 4 5 6 7 8 9 10 11 12 13
//F(n)mod3 1 2 0 2 2 1 0 1 1 2 0 2 2 1
#include <iostream>
#include <stdio.h>
using namespace std;
int a[1000001]={0};
int main()
{
int n;
int a[8]={1,2,0,2,2,1,0,1};
while(cin>>n)
{
int p;
p=n%8;
if(a[p]==0)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
return 0;
}
本文探讨了一种特殊的斐波那契数列,该数列从F(0)=7和F(1)=11开始,并遵循F(n)=F(n-1)+F(n-2)的递推公式。文章通过分析发现该数列模3后的结果呈现明显的周期性,每8个数为一周期,并提供了一段C++代码实现,用于快速判断任意项是否能被3整除。

被折叠的 条评论
为什么被折叠?



