Neste exemplo, você aprenderá a encontrar o fatorial de um inteiro não negativo inserido pelo usuário usando recursão.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação C:
- Funções C
- C Funções definidas pelo usuário
- C Recursão
O fatorial de um número positivo n é dado por:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
O fatorial de um número negativo não existe. E o fatorial de 0
é 1
.
Você aprenderá a encontrar o fatorial de um número usando a recursão neste exemplo. Visite esta página para saber como encontrar o fatorial de um número usando um loop.
Fatorial de um número usando recursão
#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; )
Resultado
Insira um número inteiro positivo: 6 Fatorial de 6 = 720
Suponha que o usuário inseriu 6.
Inicialmente, multiplyNumbers()
é chamado de main()
com 6 passado como um argumento.
Então, 5 é passado multiplyNumbers()
da mesma função (chamada recursiva). Em cada chamada recursiva, o valor do argumento n diminui em 1.
Quando o valor de n é menor que 1, não há chamada recursiva e o fatorial é retornado finalmente para a main()
função.