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>
private java.util.HashMap memoliste = new java.util.HashMap();
memoliste.put(0, java.math.BigInteger.ONE);
memoliste.put(1, java.math.BigInteger.ONE);
private java.math.BigInteger fibMemo(Integer n)
{
if(memoliste.containsKey(n))
{
return memoliste.get(n);
}
else
{
java.math.BigInteger fib1 = fibMemo(n - 1);
memoliste.put(n-1, fib1);
java.math.BigInteger fib2 = fibMemo(n - 2);
return (fib1.add(fib2));
}
}
</code>
<eval>
System.out.println(""+fibMemo(250));
</eval>