#include <iostream>
#include <vector>
using namespace std;
int t;
long long int n;
vector<long long int> fib;
int answers[10] = {0,0,0,0,0,0,0,0,0,0};
int main() {
cin >> t;
for(unsigned int i = 0; i < t; i++){
n = 0;
fib.clear();
fib.push_back(0);
fib.push_back(1);
cin >> n;
if(n == 0) answers[i] = 1;
else {
while(fib[fib.size()-1] <= n) {
if(fib[fib.size()-1] == n || n == 1) {
answers[i] = 1;
break;
}
bool solved = false;
for(vector<long long int>::iterator ib = fib.begin(); ib != fib.end(); ib++) {
if((*ib * fib[fib.size()-1]) == n){
answers[i] = 1;
solved = true;
break;
}
}
if(solved)break;
fib.push_back(fib[fib.size()-1] + fib[fib.size()-2]);
}
}
}
for(unsigned i = 0; i < t; i++){
cout << (answers[i] == 1 ? "TAK" : "NIE") << endl;
}
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 42 43 44 | #include <iostream> #include <vector> using namespace std; int t; long long int n; vector<long long int> fib; int answers[10] = {0,0,0,0,0,0,0,0,0,0}; int main() { cin >> t; for(unsigned int i = 0; i < t; i++){ n = 0; fib.clear(); fib.push_back(0); fib.push_back(1); cin >> n; if(n == 0) answers[i] = 1; else { while(fib[fib.size()-1] <= n) { if(fib[fib.size()-1] == n || n == 1) { answers[i] = 1; break; } bool solved = false; for(vector<long long int>::iterator ib = fib.begin(); ib != fib.end(); ib++) { if((*ib * fib[fib.size()-1]) == n){ answers[i] = 1; solved = true; break; } } if(solved)break; fib.push_back(fib[fib.size()-1] + fib[fib.size()-2]); } } } for(unsigned i = 0; i < t; i++){ cout << (answers[i] == 1 ? "TAK" : "NIE") << endl; } return 0; } |
English