0
点赞
收藏
分享

微信扫一扫

HDU 5167 Fibonacci


Fibonacci


Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1525    Accepted Submission(s): 387

Problem Description


Following is the recursive definition of Fibonacci sequence:

Fi=⎧⎩⎨01Fi−1+Fi−2i = 0i = 1i > 1


Input


T shows there are T test cases below. ( T≤100,000)
For each test case , the first line contains a integers n , which means the number need to be checked.
0≤n≤1,000,000,000


Output


For each case output "Yes" or "No".


Sample Input


3 4 17 233


Sample Output


Yes No Yes


Source


​​BestCoder Round #28 ​​


//斐波那契数增长较快 
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<set>
using namespace std;
#define LL __int64
LL num[50];
set<LL> s;
set<LL>::iterator it;

int main()
{
int i,j,t,a;
LL x;
num[0]=0;
num[1]=1;
s.insert(0);
s.insert(1);

for(i=2;i<=47;i++)
{
num[i]=num[i-1]+num[i-2];
s.insert(num[i]);
}

for(it=s.begin();it!=s.end();it++)
{
for(j=3;j<=45;j++)
{
x=*it*num[j];
if(x<=1000000000)
s.insert(x);
}
}
scanf("%d",&t);
while(t--)
{
scanf("%d",&a);
if(s.find(a)!=s.end())
printf("Yes\n");
else
printf("No\n");
}
return 0;
}



举报

相关推荐

0 条评论