#include <iostream> #include <string> using namespace std; string dodaj(string a, string b) { if(b.length()>a.length()) a.insert(0, "0"); for(int i=b.length()-1; i>=0 ; i--) { a[i]+=b[i]-48; if(a[i]>57) { a[i]-=10; if(i>0) { a[i-1]+=1; } else { a.insert(0, "1"); } } } return a; } int main() { string ko, b, a; cin>>ko; if(ko=="0") cout<<"0"; else if(ko=="1") cout<<"1"; a=b="1"; int li=3; while(li<550) { a=dodaj(a, b); swap(a, b); if(b.length()>=ko.length()) { if(ko==b.substr(b.length()-ko.length(), ko.length())) { cout<<li; return 0; } } li++; } cout<<"NIE"; 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 45 46 47 48 49 50 51 52 | #include <iostream> #include <string> using namespace std; string dodaj(string a, string b) { if(b.length()>a.length()) a.insert(0, "0"); for(int i=b.length()-1; i>=0 ; i--) { a[i]+=b[i]-48; if(a[i]>57) { a[i]-=10; if(i>0) { a[i-1]+=1; } else { a.insert(0, "1"); } } } return a; } int main() { string ko, b, a; cin>>ko; if(ko=="0") cout<<"0"; else if(ko=="1") cout<<"1"; a=b="1"; int li=3; while(li<550) { a=dodaj(a, b); swap(a, b); if(b.length()>=ko.length()) { if(ko==b.substr(b.length()-ko.length(), ko.length())) { cout<<li; return 0; } } li++; } cout<<"NIE"; return 0; } |