#include <stdio.h>
#include <stdlib.h>
int F[50] = {0};
int m;
void fib(int n)
{
F[1]=1;
int i;
for(i=2; F[i-1]<=n; i++)
F[i] = F[i-1] + F[i-2];
m = --i;
}
int check(int n)
{
int i=0, j=m-1;
while(i<=j)
{
int k = F[i]*F[j];
if(k == n) return 1;
else if(k < n) i++;
else j--;
}
return 0;
}
int main()
{
int d, t;
scanf("%d", &t);
while(t--)
{
scanf("%d",&d);
fib(d);
if(check(d)) printf("TAK\n");
else printf("NIE\n");
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <stdio.h> #include <stdlib.h> int F[50] = {0}; int m; void fib(int n) { F[1]=1; int i; for(i=2; F[i-1]<=n; i++) F[i] = F[i-1] + F[i-2]; m = --i; } int check(int n) { int i=0, j=m-1; while(i<=j) { int k = F[i]*F[j]; if(k == n) return 1; else if(k < n) i++; else j--; } return 0; } int main() { int d, t; scanf("%d", &t); while(t--) { scanf("%d",&d); fib(d); if(check(d)) printf("TAK\n"); else printf("NIE\n"); } return 0; } |
English