Tässä ohjelmassa opit etsimään ja näyttämään luvun faktoria Java-rekursiivisella funktiolla.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:
- Java-menetelmät
- Java-rekursio
Positiivisen luvun n kerroin saadaan:
kerroin n (n!) = 1 * 2 * 3 * 4 *… * n
Negatiivisen luvun kerrointa ei ole olemassa. Ja 0: n kerroin on 1.
Opit etsimään luvun faktoria rekursiolla tässä esimerkissä. Käy tältä sivulta saadaksesi selville, kuinka löydät luvun faktorin silmukan avulla.
Esimerkki: Rekursiota käyttävän luvun kerroin
public class Factorial ( public static void main(String() args) ( int num = 6; long factorial = multiplyNumbers(num); System.out.println("Factorial of " + num + " = " + factorial); ) public static long multiplyNumbers(int num) ( if (num>= 1) return num * multiplyNumbers(num - 1); else return 1; ) )
Tuotos
Kerroin 6 = 720
Aluksi multiplyNumbers()
kutsutaan main()
funktiosta, jonka argumenttina on 6.
Koska 6 on suurempi tai yhtä suuri kuin 1, 6 kerrotaan tulokseen, multiplyNumbers()
jossa 5 (num -1) välitetään. Koska sitä kutsutaan samasta toiminnosta, se on rekursiivinen puhelu.
Jokaisessa rekursiivisessa puhelussa argumentin num arvoa pienennetään yhdellä, kunnes num saavuttaa alle 1.
Kun num-arvo on alle 1, rekursiivista puhelua ei ole.
Ja jokainen rekursiivinen puhelu palaa ja antaa meille:
6 * 5 * 4 * 3 * 2 * 1 * 1 (0: lle) = 720