001 package de.hska.info1.uebung.rekursion;
002
003 public class FibonacciZahlen {
004
005 public long getFibonacciZahl1(int n) {
006 if (n <= 1) {
007 return 1;
008 } else {
009 return getFibonacciZahl1(n-1)
010 + getFibonacciZahl1(n-2);
011 }
012 }
013
014 public long getFibonacciZahl2(int n) {
015 long [] fib = new long[n + 2];
016
017 fib[0] = 1;
018 fib[1] = 1;
019
020 for (int i = 2; i <= n; i++) {
021 fib[i] = fib[i - 1] + fib[i - 2];
022 }
023
024 return fib[n];
025 }
026
027 public long getFibonacciZahl(int n) {
028 long fibi = 1;
029 long fibiM1 = 1;
030 long fibiM2 = 1;
031
032 for (int i = 2; i <= n; i++) {
033 fibi = fibiM1 + fibiM2;
034 fibiM2 = fibiM1;
035 fibiM1 = fibi;
036 }
037
038 return fibi;
039 }
040
041 /**
042 * @param args
043 */
044 public static void main(String[] args) {
045 FibonacciZahlen fibonacciZahlen = new FibonacciZahlen();
046
047 for (int n = 0; n < 1000; n++) {
048 System.out.println("fib(" + n + ") = "
049 + fibonacciZahlen.getFibonacciZahl(n));
050 }
051 }
052
053 }