**Problem 25:**

The Fibonacci sequence is defined by the recurrence relation:

F

_{n}= F_{n-1}+ F_{n-2}, where F_{1}= 1 and F_{2}= 1.

Hence the first 12 terms will be:

F

_{1}= 1

F_{2}= 1

F_{3}= 2

F_{4}= 3

F_{5}= 5

F_{6}= 8

F_{7}= 13

F_{8}= 21

F_{9}= 34

F_{10}= 55

F_{11}= 89

F_{12}= 144

The 12th term, F_{12}, is the first term to contain three digits.

What is the first term in the Fibonacci sequence to contain 1000 digits?

**Idea:**

Since we don’t know which Fibonacci number we need to calculate to get 1000 digits, I immediately ruled out using a recursive function (although I probably could’ve used memoization to speed up the process). Since I don’t need to hold onto any of the previous Fibonacci numbers, however, there’s no point is saving them, all I really need are the previous 2 Fibonacci numbers to calculate the next one, then just check if the next one has at least 1000 digits.

int answer = 0; BigInteger first = BigInteger.ONE; answer++; BigInteger second = BigInteger.ONE; answer++; BigInteger next = first.add(second); answer++; while(next.toString().length() < 1000) { first = second; second = next; next = first.add(second); answer++; } System.out.println("Answer: "+answer);