问题及代码:
运行结果:
Problem D Fibonacci Again
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 9 Accepted Submission(s) : 7
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
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.
Print the word "no" if not.
Sample Input
0 1 2 3 4 5
Sample Output
no no yes no no no
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:HDU.cpp
*作 者:单昕昕
*完成日期:2015年2月27日
*版 本 号:v1.0
*/
#include<iostream>
using namespace std;
int main()
{
int n,s[7];
s[0] = 0;
s[1] = 0;
s[2] = 1;
s[3] = 0;
s[4] = 0;
s[5] = 0;
s[6] = 1;
while(cin>>n)
{
if(n<8)
if(s[n])
cout<<"yes"<<endl;
else cout<<"no"<<endl;
else
{
n-=2;
if(n%4==0)
cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
}
return 0;
}
//另一种简洁AC代码
#include<iostream>
using namespace std;
int main()
{
int s[8],n;
s[0] = 1;
s[1] = 2;
s[2] = 0;
s[3] = 2;
s[4] = 2;
s[5] = 1;
s[6] = 0;
s[7] = 1;
while(cin>>n)
{
if(!s[n%8]) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
}
运行结果:
类斐波那契数列对三取模。
找规律。
学习心得:
就是找规律,发现yes时n的所有值满足一个等差数列:N= 2+4n。