Tässä ohjelmassa opit laskemaan luvun voiman rekursiivisen funktion avulla Kotlinissa.
Esimerkki: Ohjelma laskemaan teho rekursiolla
fun main(args: Array) ( val base = 3 val powerRaised = 4 val result = power(base, powerRaised) println("$base^$powerRaised = $result") ) fun power(base: Int, powerRaised: Int): Int ( if (powerRaised != 0) return base * power(base, powerRaised - 1) else return 1 )
Kun suoritat ohjelmaa, tulos on:
3 4 = 81
Edellä olevassa ohjelmassa teho lasketaan rekursiivisen funktion teholla ().
Yksinkertaisesti sanottuna rekursiivinen funktio kertoo perustan itsensä kanssa PowerRaised-aikoina, mikä on:
3 * 3 * 3 * 3 = 81Suoritusvaiheet
| Toisto | teho () | teho kohonnut | tulos |
|---|---|---|---|
| 1 | teho (3, 4) | 4 | 3 * tulos 2 |
| 2 | teho (3, 3) | 3 | 3 * 3 * tulos 3 |
| 3 | teho (3, 2) | 2 | 3 * 3 * 3 * tulos 4 |
| 4 | teho (3, 1) | 1 | 3 * 3 * 3 * 3 * tulos lopullinen |
| Lopullinen | teho (3, 0) | 0 | 3 * 3 * 3 * 3 * 1 = 81 |
Tässä on vastaava Java-koodi: Java-ohjelma tehon laskemiseksi rekursiolla








