zoukankan      html  css  js  c++  java
  • bzoj3713: [PA2014]Iloczyn

    Description

    斐波那契数列的定义为:k=0或1时,F[k]=k;k>1时,F[k]=F[k-1]+F[k-2]。数列的开头几项为0,1,1,2,3,5,8,13,21,34,55,…你的任务是判断给定的数字能否被表示成两个斐波那契数的乘积。

    Input

    第一行包含一个整数t(1<=t<=10),表示询问数量。接下来t行,每行一个整数n_i(0<=n_i<=10^9)。

    Output

    输出共t行,第i行为TAK(是)或NIE(否),表示n_i能否被表示成两个斐波那契数的乘积。

    Sample Input

    5
    5
    4
    12
    11
    10

    Sample Output

    TAK
    TAK
    NIE
    NIE
    TAK
    菲波那切数列增长很快,到了第45个就是10^10了,所以直接搜索即可。
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<cstdio> 
    #include<queue>
    #include<math.h>
    using namespace std;
    int  f[100];
    int   n,t;
    bool check()
    {
        for(int i=0;i<=44;i++)
        for(int j=0;j<=44;j++)
            if(n==(f[i]*f[j]))
            return 1;
        return 0;
    }
    int main()
    {
        f[0]=0,f[1]=1;
        for(int i=2;i<=44;i++)
            f[i]=f[i-1]+f[i-2];
        scanf("%d",&t);
        for(int i=1;i<=t;i++)
        {
            scanf("%d",&n);
            if(check())
                printf("TAK
    ");
            else printf("NIE
    ");
        }
        return 0;
    } 
  • 相关阅读:
    用windows脚本实现文件下载
    pku1325 Machine Schedule
    中位数
    pku1468 Rectangles
    最小密度路径
    合并序列
    PowerDesigner(5)转载
    责任链模式
    PowerDesigner(3)转载
    解释器模式
  • 原文地址:https://www.cnblogs.com/CLGYPYJ/p/7043530.html
Copyright © 2011-2022 走看看