Java Iterative Fibonacci (long) Code Example

 


package gigasblade;


// If you have any comments and/or suggestions, please let me know!
public class FibonacciIterative {
private static long fibonacci(long n) {
if (n <= 0)
throw new IllegalArgumentException();
if (n <= 2) {
return 1;
}
int an1 = 1, an2 = 1;
int an = an1 + an2;
for (int i = 3; i <= n ; i++) {
an1 = an2;
an2 = an;
an = an1+an2;
}
return an;
}

private static void checkFibonacci(long n) {
try {
System.out.println("fibonacci(" + n + "): " + fibonacci(n));
} catch (IllegalArgumentException e) {
System.err.println("fibonacci(" + n + "): " + e);
}
}

public static void main(String[] args) {
for (int n = -2 ; n <= 18; n++) {
checkFibonacci(n);
}
}
}
fibonacci(-2): java.lang.IllegalArgumentException
fibonacci(-1): java.lang.IllegalArgumentException
fibonacci(0): java.lang.IllegalArgumentException
fibonacci(1): 1
fibonacci(2): 1
fibonacci(3): 3
fibonacci(4): 5
fibonacci(5): 8
fibonacci(6): 13
fibonacci(7): 21
fibonacci(8): 34
fibonacci(9): 55
fibonacci(10): 89
fibonacci(11): 144
fibonacci(12): 233
fibonacci(13): 377
fibonacci(14): 610
fibonacci(15): 987
fibonacci(16): 1597
fibonacci(17): 2584
fibonacci(18): 4181

Process finished with exit code 0

Comments