Bij verheffen van 2 tot de macht 3, moet je dus zorgen dat je 2 x 2 x 2 krijgt. Het lijkt me duidelijk dat je een functie krijgt met twee argumenten, in dit geval dus 2 en 3.
De aanroep wordt dus: jouwfunctie ( 2, 3 );
In die functie wil je 2 keer iets doen. Alleen aangezien je het recursief wilt doen, moet je dus
jouwfunctie aanroepen, maar dan wel zo dat de recursie ergens eindigt. Ik stel voor om te bedenken dat je elke iteratie dichter bij je doel moet komen, en elke iteratie ga je dus een niveau minder diep. Er
moet een conditie zijn opgenomen, anders krijg je een oneindige lus.
code:
1
2
3
4
5
6
7
| jouwfunctie ( grondtal, macht ) {
als ( macht > 1 ) {
return grondtal * jouwfunctie ( grondtal, macht - 1 );
} anders {
return grondtal;
}
} |
Zo gaat dat dus. Elke ireratie wordt er één keer de macht verminderd, en wordt met het grondtal vermenigvuldigd.