Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Lösungsversuch Miniklausur WS 2019/20
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung | Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
pruefungen:bachelor:aud:loesung-miniklausur-19 [08.06.2020 16:59] – kat04 | pruefungen:bachelor:aud:loesung-miniklausur-19 [11.06.2020 12:23] – SeBi | ||
---|---|---|---|
Zeile 109: | Zeile 109: | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Aufgabe 4 (Memoization und DP) ==== | ||
+ | **a)** | ||
+ | <code java> | ||
+ | long facMem(int k, long[] fs) { | ||
+ | if (k <= 0) | ||
+ | return 1; | ||
+ | if (fs[k] > 0) | ||
+ | return fs[k]; | ||
+ | return k * facMem(k - 1, fs); | ||
+ | } | ||
+ | |||
+ | static long multiFacMem(int k, int... ks) { | ||
+ | long div = 1; | ||
+ | long[] arr = new long[k + 1]; | ||
+ | for (int ki : ks) | ||
+ | div *= facMem(ki, arr); | ||
+ | return facMem(k, arr) / div; | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | **b)** | ||
+ | <code java> | ||
+ | |||
+ | </ | ||