U ovom ćete primjeru naučiti pronaći faktorijel negativnog cijelog broja koji je korisnik unio uporabom rekurzije.
Da biste razumjeli ovaj primjer, trebali biste imati znanje sljedećih C programskih tema:
- C Funkcije
- C Korisnički definirane funkcije
- C Rekurzija
Faktorijal pozitivnog broja n daje:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Faktorijal negativnog broja ne postoji. A faktorijel 0
je 1
.
U ovom ćete primjeru naučiti pronaći faktorijel broja pomoću rekurzije. Posjetite ovu stranicu da biste saznali kako možete pronaći faktorijel broja pomoću petlje.
Faktorijal broja koji koristi rekurziju
#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; )
Izlaz
Unesite pozitivan cijeli broj: 6 Factorial od 6 = 720
Pretpostavimo da je korisnik upisao 6.
U početku multiplyNumbers()
se poziva main()
s brojem 6 kao argument.
Zatim se multiplyNumbers()
iz iste funkcije (rekurzivni poziv) prenosi na 5 . U svakom rekurzivnom pozivu vrijednost argumenta n smanjuje se za 1.
Kada je vrijednost n manja od 1, nema rekurzivnog poziva i faktorijel se na kraju vraća main()
funkciji.