I dette eksempel lærer du at finde faktoren for et ikke-negativt heltal indtastet af brugeren ved hjælp af rekursion.
For at forstå dette eksempel skal du have kendskab til følgende C-programmeringsemner:
- C Funktioner
- C Brugerdefinerede funktioner
- C Rekursion
Faktoriet for et positivt tal n er givet ved:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Faktoren for et negativt tal findes ikke. Og det faktuelle 0
er 1
.
I dette eksempel lærer du at finde et faktors nummer ved hjælp af rekursion. Besøg denne side for at lære, hvordan du kan finde et nummer ved hjælp af en løkke.
Faktor for et tal ved hjælp af 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
Indtast et positivt heltal: 6 Faktor 6 = 720
Antag at brugeren indtastede 6.
Oprindeligt multiplyNumbers()
kaldes fra main()
med 6 bestået som argument.
Derefter sendes 5 til multiplyNumbers()
fra den samme funktion (rekursivt opkald). I hvert rekursivt opkald nedsættes værdien af argument n med 1.
Når værdien af n er mindre end 1, er der ingen rekursivt opkald, og faktoren returneres i sidste ende til main()
funktionen.