Šiame pavyzdyje sužinosite, kaip surašyti ne neigiamo sveiko skaičiaus, kurį vartotojas įvedė naudodamasis rekursija, faktorių.
Norėdami suprasti šį pavyzdį, turėtumėte žinoti šias C programavimo temas:
- C funkcijos
- C Vartotojo nustatytos funkcijos
- C Rekursija
Teigiamo skaičiaus n faktorą pateikia:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Neigiamo skaičiaus faktorialas neegzistuoja. Ir faktorius 0
yra 1
.
Šiame pavyzdyje išmoksite rasti skaičiaus faktorialą naudodami rekursiją. Apsilankykite šiame puslapyje ir sužinokite, kaip galite rasti skaičiaus faktorialą naudodami kilpą.
Skaičiaus faktorius naudojant rekursiją
#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; )
Rezultatas
Įveskite teigiamą sveikąjį skaičių: 6 koeficientas 6 = 720
Tarkime, kad vartotojas įvedė 6.
Iš pradžių multiplyNumbers()
iškviečiama iš main()
6 kaip argumentą.
Tada 5 perduodami multiplyNumbers()
iš tos pačios funkcijos (rekursinis skambutis). Kiekviename rekursiniame kvietime argumento n vertė sumažinama 1.
Kai n reikšmė yra mažesnė nei 1, rekurzinio iškvietimo nėra, o faktorialas galiausiai grąžinamas į main()
funkciją.