[bzoj-3713][PA2014]Iloczyn 题解

来源:互联网 发布:湖南软件测试 编辑:程序博客网 时间:2024/06/01 09:04

题目传送门
dalao又跟我说了一题水题。
看完题,都知道斐波那契几项后就特别大,所以只需要预处理出前面几项就好了。
(大约是45项左右,因为40项的时候就已经大于1个亿了)

#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,a,n) for (int i=a;i>=n;i--)#define Clear(a,x) memset(a,x,sizeof(a))#define ll long long#define INF 2000000000#define eps 1e-8using namespace std;ll read(){    ll x=0,f=1;    char ch=getchar();    while (ch<'0'||ch>'9') f=ch=='-'?-1:f,ch=getchar();    while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();    return x*f;}const int maxn=50;ll f[maxn];int main(){    f[0]=0,f[1]=1;    rep(i,2,45) f[i]=f[i-1]+f[i-2];    int T=read();    while (T--){        ll a=read();        bool flag=0;        rep(i,0,45)            rep(j,0,45)                 if (!flag&&f[i]*f[j]==a){                    flag=1;                    puts("TAK");                }        if (!flag) puts("NIE");    }    return 0;}
原创粉丝点击