import java.util.Scanner;
public class fib {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String find = in.nextLine();
in.close();
int length = find.length();
long limit = 0;
long div = 0;
if (length == 1) {
limit = 60;
div = 10;
} else if (length == 2) {
limit = 300;
div = 100;
} else {
limit = 15;
div = 10;
for (int i = 1; i < length; i++) {
limit *= 10;
div *= 10;
}
}
long lfind = Long.valueOf(find).longValue();
long a = 0;
long b = 1;
long c = 1;
long k = 2;
while (c < div/10) {
a = b;
b = c;
c = a + b;
c %= div;
k++;
}
boolean found = false;
for (long i = 0; i <= limit; i++) {
if (c == lfind) {
System.out.println(k+i);
found = true;
i = limit + 1;
}
a = b;
b = c;
c = a + b;
c %= div;
}
if (!found) {
System.out.println("NIE");
}
}
}
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 | import java.util.Scanner; public class fib { public static void main(String[] args) { Scanner in = new Scanner(System.in); String find = in.nextLine(); in.close(); int length = find.length(); long limit = 0; long div = 0; if (length == 1) { limit = 60; div = 10; } else if (length == 2) { limit = 300; div = 100; } else { limit = 15; div = 10; for (int i = 1; i < length; i++) { limit *= 10; div *= 10; } } long lfind = Long.valueOf(find).longValue(); long a = 0; long b = 1; long c = 1; long k = 2; while (c < div/10) { a = b; b = c; c = a + b; c %= div; k++; } boolean found = false; for (long i = 0; i <= limit; i++) { if (c == lfind) { System.out.println(k+i); found = true; i = limit + 1; } a = b; b = c; c = a + b; c %= div; } if (!found) { System.out.println("NIE"); } } } |
English