博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3713: [PA2014]Iloczyn
阅读量:4684 次
发布时间:2019-06-09

本文共 912 字,大约阅读时间需要 3 分钟。

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
#include
#include
#include
#include
#include
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\n"); else printf("NIE\n"); } return 0;}

 

转载于:https://www.cnblogs.com/CLGYPYJ/p/7043530.html

你可能感兴趣的文章
C++ sort简单用法
查看>>
Oracle分区索引
查看>>
4.17上午
查看>>
IIS的ISAPI接口简介
查看>>
python:open/文件操作
查看>>
16 乘法口诀输出
查看>>
mac 常用地址
查看>>
鼠标经过切换图片
查看>>
流程控制 Day06
查看>>
Linux下安装Tomcat
查看>>
windows live writer 2012 0x80070643
查看>>
C程序的启动和终止
查看>>
asp.net web 定时执行任务
查看>>
tomcat 和MySQL的安装
查看>>
11.5 内部类
查看>>
Cosine Similarity
查看>>
浅谈JAVA集合框架
查看>>
halt和shutdown 的区别
查看>>
git常用操作
查看>>
京东SSO单点登陆实现分析
查看>>