Lösungen Dynamisches Programmieren

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
=Lösungen zu Fibonacci=

==Fibonacci ohne Memoizing==

<code>
public int fib(int n)
{
    if(n<2)
    {
        return 1;
    }
    else
    {
        return fib(n-1)+fib(n-2);
    }
}
</code>
<eval>
System.out.println(""+fib(11));
</eval>

==Fibonacci mit Memoizing==

<code>
public java.util.HashMap memoListe = new java.util.HashMap();
memoListe.put(0,java.math.BigInteger.ONE);
memoListe.put(1,java.math.BigInteger.ONE);

public int fibMemo(int n)
{
    if(memoListe.containsKey(n))
    {
        return memoListe.get(n);
    }
    else
    {
        java.math.BigInteger fib1 = fibMemo(n-1);
        java.math.BigInteger fib2 = fibMemo(n-2);
        memoListe.put(n-1,fib1);
        memoListe.put(n-2,fib2);
        return fib1.add(fib2);
    }
}
</code>
<eval>
System.out.println(""+fibMemo(150));
</eval>