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
53
54
55
56
57
58
59
60
#include <iostream>
#include <cmath>
#include <string.h>

using namespace std;

int fibonacci(long long int n)
{
    return (round((1/sqrt(5))*pow((1+sqrt(5))/2,n)));

}

int main()
{
    int dlugosc_koncowki=2;
    long long int koncowka1=0;
    long long int koncowka2=1;
    long long int koncowka3;
    long long int koncowka_zadana=0;
    string koncowka_zadana_string;

    cin>>koncowka_zadana_string;
    dlugosc_koncowki=koncowka_zadana_string.length();

    for(int i=1;i<dlugosc_koncowki+1;i++)
    {
        koncowka_zadana+=(koncowka_zadana_string[i-1]-48)*pow(10,dlugosc_koncowki-i);
    }

    //cout<<koncowka_zadana<<endl;

    for(long long int i=0;;i++)
    {
        koncowka3=koncowka2;
        koncowka2=koncowka1+koncowka2;
        koncowka1=koncowka3;
        //cout<<koncowka2<<endl;
        //cout<<pow(10,dlugosc_koncowki)<<endl;;
        koncowka2=koncowka2%int(pow(10,dlugosc_koncowki));
        //cout<<koncowka2<<endl<<endl;
        //cout<<100%(int(pow(10,dlugosc_koncowki)))<<endl;

        if(koncowka2==koncowka_zadana)
        {
            cout<<i+2;
            break;
        }

        if(i>6*pow(10,dlugosc_koncowki+1))
        {
            cout<<"NIE";
            break;
        }

    }


}

//koncowka + koncowka modulo 10^dlugosc_koncowki