English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste exemplo, você aprenderá a encontrar o fatorial de um inteiro não negativo introduzido pelo usuário usando recursão.
Para entender este exemplo, você deve entender o seguinteProgramação em CTema:
O fatorial de um número positivo n é dado pela seguinte fórmula:
fatorial de n (n!) = 1 * 2 * 3 * 4 *... * n
O fatorial de números negativos não existe. O fatorial de 0 é1.
Neste exemplo, você aprenderá a usar recursão para encontrar o fatorial de um número. Acesse esta página para saber comoUso do laço para calcular o fatorial de um número.
#include <stdio.h> long int multiplyNumbers(int n); int main() { int n; printf("Insira um número inteiro positivo: "); scanf("%d", &n); printf("%d fatorial = %ld", n, multiplyNumbers(n)); return 0; } long int multiplyNumbers(int n) { if (n >=1) return n*multiplyNumbers(n-1); else return 1; }
Resultados de saída
Insira um número inteiro positivo: 6 6 fatorial = 720
Supondo que o usuário tenha digitado6.
Inicialmente, chama multipleNumbers() a partir de main() e passa6como parâmetro.
então, será passado como5passado para multipleNumbers() (chamada recursiva). Em cada chamada recursiva, o valor do parâmetro n é1.
Quando o valor de n é menor que1Sem chamadas recursivas e o fatorial é devolvido ao main() função no final.