I det här exemplet lär du dig att hitta ett faktum för ett icke-negativt heltal som användaren angett med rekursion.
För att förstå detta exempel bör du ha kunskap om följande C-programmeringsämnen:
- C Funktioner
- C Användardefinierade funktioner
- C Rekursion
Faktorn för ett positivt tal n ges av:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Faktorn för ett negativt tal finns inte. Och faktorn 0
är 1
.
Du kommer att lära dig att hitta ett tal med hjälp av rekursion i detta exempel. Besök den här sidan för att lära dig hur du kan hitta ett nummer med hjälp av en slinga.
Fakta om ett nummer som använder rekursion
#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; )
Produktion
Ange ett positivt heltal: 6 Faktor 6 = 720
Antag att användaren angav 6.
Ursprungligen multiplyNumbers()
kallas från main()
med 6 godkända som ett argument.
Sedan skickas 5 till multiplyNumbers()
från samma funktion (rekursivt samtal). I varje rekursivt samtal minskas argumentets värde med 1.
När värdet på n är mindre än 1, finns det inget rekursivt samtal och faktorn returneras i slutändan till main()
funktionen.