#include <cstdio>
#include <string>
#include <math.h>
using namespace std;
int fib(long long int n, int seq) {
if ( n == 0 || n == 1 )
return n;
int fib1 = 0;
int fib2 = 1;
int fib = 0;
int number = seq;
long long max;
int x = 0; while (number != 0) { number /= 10; x++; }
max = 15 * pow(10,x-1);
x = pow(10, x);
for ( long long int i = 2; i < max; i++ )
{
fib = (fib1 + fib2) % x;
fib1 = fib2;
fib2 = fib;
if(seq == fib){
printf("%lld",i);
return fib;
}
}
printf("NIE");
return fib;
}
int main(){
long long int x= 1000000000000000000;
int seq;
scanf("%d", &seq);
fib(x, seq);
}
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 | #include <cstdio> #include <string> #include <math.h> using namespace std; int fib(long long int n, int seq) { if ( n == 0 || n == 1 ) return n; int fib1 = 0; int fib2 = 1; int fib = 0; int number = seq; long long max; int x = 0; while (number != 0) { number /= 10; x++; } max = 15 * pow(10,x-1); x = pow(10, x); for ( long long int i = 2; i < max; i++ ) { fib = (fib1 + fib2) % x; fib1 = fib2; fib2 = fib; if(seq == fib){ printf("%lld",i); return fib; } } printf("NIE"); return fib; } int main(){ long long int x= 1000000000000000000; int seq; scanf("%d", &seq); fib(x, seq); } |
English