Deze vraag staat op 6 punten. Je moet een recursief algoritme schrijven. Kies één van de 3 onderstaande opgaven die je programmeert. De gemakkelijkste oefening staat eerst, de moeilijkste laatst. Als je een moeilijkere oefening oplost krijg je wel meer punten.
Deze oefening verbetert zichzelf via Dodona. Je krijgt sowieso een rood kruisje, maar klik door op het tabblad van de oefening die jij indiende om te zien hoe je het deed.
Schrijf een functie product(a, b)
die het product tussen 2 getallen a
en b
berekent. Beide getallen zijn positief (dus minstens 0). Je functie mag géén ingebouwde vermenigvuldiging (zoals *
) gebruiken.
Beeld je een rechthoekige tegelvloer in met r
rijen en k
kolommen tegels. Je start op de tegel linksboven en wil rechtsonder eindigen. Je mag énkel naar rechts of naar onderen bewegen.
Schrijf een functie paden(r, k)
die op basis van het aantal rijen en kolommen uitrekent op hoeveel verschillende manieren je dit kan doen.
Als voorbeeld: paden(2,3)
komt 3 uit (zie onderstaande figuur).
Schrijf de functie combinatiesom(lijst, target)
die uitrekent op hoeveel manieren je de getallen uit lijst
met elkaar kan optellen om het getal target
exact te bekomen. Je mag elk getal uit lijst
slechts 1x gebruiken.
tip: verander lijst
niet in je algoritme.
Een voorbeeld ter verduidelijking:
combinatiesom([1, 2, 3, 3, 5], 7)
2
Uitleg: de 2 manieren om 7 te verkrijgen zijn 1 + 3 + 3
en 2 + 5