Tässä ohjelmassa opit löytämään luonnollisen luvun summan käyttämällä Java-rekursiota. Tämä tehdään rekursiivisen toiminnon avulla.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:
- Java-menetelmät
- Java-rekursio
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ä
public class AddNumbers ( public static void main(String() args) ( int number = 20; int sum = addNumbers(number); System.out.println("Sum = " + sum); ) public static int addNumbers(int num) ( if (num != 0) return num + addNumbers(num - 1); else return num; ) )
Tuotos
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.