Tässä ohjelmassa opit löytämään luonnollisen luvun summan rekursiolla Kotlinissa. Tämä tehdään rekursiivisen toiminnon avulla.
Positiiviset luvut 1, 2, 3… tunnetaan luonnollisina numeroina. Alla oleva ohjelma ottaa käyttäjältä positiivisen kokonaisluvun ja laskee summan annettuun lukuun.
Löydät luonnollisten lukujen summan myös silmukan avulla. Opit kuitenkin ratkaisemaan tämän ongelman käyttämällä rekursiota täällä.
Esimerkki: Luonnollisten lukujen summa rekursiota käyttämällä
fun main(args: Array) ( val number = 20 val sum = addNumbers(number) println("Sum = $sum") ) fun addNumbers(num: Int): Int ( if (num != 0) return num + addNumbers(num - 1) else return num )
Kun suoritat ohjelmaa, tulos on:
Summa = 210
Numero, jonka summa on löydettävissä, on tallennettu muuttujanumeroon.
Aluksi addNumbers()
kutsutaan main()
funktiosta, jonka argumenttina on 20.
Numero (20) lisätään tulokseen addNumbers(19)
.
Seuraavassa funktiokutsussa kohteesta addNumbers()
siirretään addNumbers()
19, joka lisätään tulokseen addNumbers(18)
. Tätä prosessia jatketaan, kunnes numero on yhtä suuri kuin 0.
Kun num on yhtä suuri kuin 0, rekursiivista kutsua ei ole, ja tämä palauttaa kokonaislukujen summan main()
funktioon.
Tässä on vastaava Java-koodi: Java-ohjelma luonnollisten numeroiden summan löytämiseksi rekursiota käyttämällä