NJUST5167 Fibonacci

来源:互联网 发布:自助建站平台源码 编辑:程序博客网 时间:2024/05/16 17:15
题意:判断一个数能不能由Fibonacci 数相乘得到
解析:
前45个数已经到达10亿,所以直接暴力
#include <iostream>#include<stdio.h>using namespace std;int   a[100];bool dfs(long long s,int k){    if(s<7)return true;    for(int i=k; i<46; i++)    {        if(s<a[i])break;        if(s%a[i]==0)        {            if(dfs(s/a[i],i))            return true;        }    }    return false;}int main(){    a[0]=0;    a[1]=1;    for(int i=2; i<46; i++)    {        a[i]=a[i-1]+a[i-2];    }    int t;    scanf("%d",&t);    while(t--)    {        int   n;        scanf("%d",&n);        if(n==0||dfs(n,3))            printf("Yes\n");        else printf("No\n");    }    return 0;}


0 0
原创粉丝点击