
import java.math.BigInteger;
import java.util.Scanner;
public class Exercise18_02 {
public static void main(String[] args) {
System.out.print("Enter an index for fibonacci number: ");
int index = new Scanner(System.in).nextInt();
System.out.println("Invalid index!");
System.out.println("The fibonacci number at index " + index + " is " + fib(BigInteger.valueOf(index)));
public static BigInteger fib(BigInteger index) {
BigInteger f0 = BigInteger.ZERO;
BigInteger f1 = BigInteger.ONE;
BigInteger result = BigInteger.ZERO;
if (index.equals(BigInteger.ZERO))
else if (index.equals(BigInteger.ONE))
for (BigInteger i = BigInteger.ONE; i.compareTo(index) == -1; i = i.add(BigInteger.ONE)) {
