Tässä esimerkissä opit löytämään ei-negatiivisen kokonaisluvun kerroin, jonka käyttäjä on syöttänyt rekursiolla.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C-ohjelmointiaiheista:
- C Toiminnot
- C Käyttäjän määrittelemät toiminnot
- C Rekursio
Positiivisen luvun n kerroin saadaan:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Negatiivisen luvun kerrointa ei ole olemassa. Ja faktori 0
on 1
.
Opit etsimään luvun faktoria rekursiolla tässä esimerkissä. Käy tällä sivulla saadaksesi selville, kuinka voit löytää luvun faktorin silmukan avulla.
Rekursiota käyttävän luvun kerroin
#include long int multiplyNumbers(int n); int main() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); printf("Factorial of %d = %ld", n, multiplyNumbers(n)); return 0; ) long int multiplyNumbers(int n) ( if (n>=1) return n*multiplyNumbers(n-1); else return 1; )
Tuotos
Syötä positiivinen kokonaisluku: 6 Kerroin 6 = 720
Oletetaan, että käyttäjä on syöttänyt 6.
Aluksi multiplyNumbers()
kutsutaan siitä main()
, kun argumentti on 6.
Sitten 5 siirretään multiplyNumbers()
samasta toiminnosta (rekursiivinen puhelu). Kussakin rekursiivisessa puhelussa argumentin n arvo pienenee yhdellä.
Kun n: n arvo on alle 1, rekursiivista kutsua ei ole ja kerroin palautetaan lopulta main()
funktioon.