-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProblem025.java
36 lines (32 loc) · 1020 Bytes
/
Problem025.java
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
import java.math.BigInteger;
/**
* Problem 25:
*
* The Fibonacci sequence is defined by the recurrence relation:
* Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.
*
* Hence the first 12 terms will be:
* 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
*
* The 12th term, F12, is the first term to contain three digits.
* What is the index of the first term in the Fibonacci sequence to contain 1000 digits?
*/
public class Problem025 {
private static int firstFibonacciToContain(int digits) {
BigInteger prev = BigInteger.ONE;
BigInteger f = BigInteger.ONE;
BigInteger tmp;
int rank = 2;
while (f.toString().length() < 1000) {
tmp = f;
f = f.add(prev);
prev = tmp;
rank++;
}
return rank;
}
public static void main(String[] args) {
System.out.println("The first term in the Fibonacci sequence to contain 1000 digits is:");
System.out.println(firstFibonacciToContain(1000));
}
}