Problem Description
现在,有一个新的斐波那契数列,定义如下:
F(0) = 7,
F(1) = 11,
F(n) = F(n-1) + F(n-2) (n>=2).
Input
输入包含多组测试样例,每组测试样例包含一个整数n(n < 1,000,000).
Output
如果F(n)能够被3整除,请输出”yes”,否则请输出”no”。
输入样例
0
1
2
3
4
5
输出样例
no no yes no no no
分析:从0,1,2中任意找两个数组成相邻数,共有9对,则由抽屉原理可知10对之内必有循环,再找出循环即可
附ac代码:
#include<bits/stdc++.h> using namespace std; int a[100]={1,2}; int t; void doit(int n) { if(n==0) {if(a[t-1]) cout<<"no"<<endl; else cout<<"yes"<<endl; } else {if(a[n-1]) cout<<"no"<<endl; else cout<<"yes"<<endl; } } int main() { for(int i=2;;++i) { a[i]=(a[i-1]+a[i-2])%3; if(a[i]==a[1]&&a[i-1]==a[0]) {t=i-1; break; } } int n; while(scanf("%d",&n)==1) doit((n+1)%t); return 0; }
标签:hdu,数列,no,int,样例,斐波,那契 From: https://www.cnblogs.com/ruoye123456/p/16961686.html