Selles näites saate teada rekursiooni abil kasutaja sisestatud mitte-negatiivse täisarvu faktori.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C-programmeerimise teemadest:
- C funktsioonid
- C Kasutaja määratud funktsioonid
- C Rekursioon
Positiivse arvu n faktoriaal arvutatakse järgmiselt:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Negatiivse arvu faktoori pole olemas. Ja faktoriaal 0
on 1
.
Selles näites leiate rekursiooni abil numbri faktori leidmise. Külasta seda lehte, et teada saada, kuidas leida silmusega arvu faktorial.
Rekursiooni kasutava arvu faktoriaal
#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; )
Väljund
Sisestage positiivne täisarv: 6 faktoriaalarv 6 = 720
Oletame, et kasutaja sisestas 6.
Esialgu multiplyNumbers()
kutsutakse main()
argumendiks väärtusega 6.
Seejärel edastatakse multiplyNumbers()
samast funktsioonist (rekursiivne kõne) 5. Igas rekursiivses kõnes vähendatakse argumendi n väärtust 1 võrra.
Kui n väärtus on väiksem kui 1, rekursiivset kõnet ei toimu ja faktoriaal tagastatakse lõpuks main()
funktsioonile.