Ebben a példában megtanulja megtalálni a felhasználó által rekurzióval beírt nem negatív egész szám faktorszámát.
A példa megértéséhez ismernie kell a következő C programozási témákat:
- C Funkciók
- C Felhasználó által definiált funkciók
- C Rekurzió
Az n pozitív szám tényezőjét a következő adja meg:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
A negatív szám tényezője nem létezik. És faktoriálisát 0
van 1
.
Ebben a példában megtanulja megtalálni a szám faktoriáját a rekurzió segítségével. Látogasson el erre az oldalra, hogy megtudja, hogyan találhatja meg egy szám tényezőjét egy hurok segítségével.
Rekurziót használó szám tényezője
#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; )
Kimenet
Adjon meg pozitív egész számot: 6 6 = 720 tényező
Tegyük fel, hogy a felhasználó megadta a 6 értéket.
Kezdetben 6-ról multiplyNumbers()
hívják meg main()
argumentumként.
Ezután 5 átkerül multiplyNumbers()
ugyanarról a funkcióról (rekurzív hívás). Minden rekurzív hívásban az n argumentum értéke 1-gyel csökken.
Ha n értéke 1-nél kisebb, akkor nincs rekurzív hívás, és a faktoriális visszatér végül a main()
függvényhez.