Faça uma função em Python que calcula o fatorial de um número inteiro positivo através de recursividade.
Faça um programa principal para testar a função
Faça um programa principal para testar a função
Passo 1
Beleza, vamos resolver esse exercício juntos! A gente precisa criar uma função em Python que calcula o fatorial de um número inteiro positivo usando recursividade. Além disso, vamos fazer um programa principal para testar essa função. Aqui, o conteúdo principal é recursividade e fatorial, que são conceitos básicos de programação e matemática.
Passo 2
Primeiro, vamos entender o que é fatorial. O fatorial de um número inteiro positivo n, representado por n!, é o produto de todos os números inteiros de 1 até n. Por exemplo, 5! = 5 × 4 × 3 × 2 × 1 = 120.
Passo 3
Agora, vamos falar sobre recursividade. Recursividade é quando uma função chama a si mesma para resolver subproblemas menores do mesmo tipo. Para usar recursividade no cálculo do fatorial, precisamos definir duas coisas:
- Caso base: a condição que vai parar a recursão. No caso do fatorial, o caso base é quando n é 0 ou 1, porque 0! = 1! = 1.
- Chamada recursiva: a parte da função que chama a si mesma com um valor menor. Aqui, vamos chamar a função para calcular (n-1)!.
Passo 4
Vamos escrever a função em Python:
def fatorial(n):
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n - 1)
Explicação:
- Linha 1: Definimos a função
fatorial
que recebe um númeron
. - Linha 2: Verificamos se
n
é 0 ou 1. Se for, retornamos 1, que é o caso base. - Linha 4: Se
n
não for 0 ou 1, retornamosn
multiplicado pelo fatorial den - 1
. Aqui acontece a chamada recursiva.
Passo 5
Agora, vamos criar o programa principal para testar nossa função. Vamos pedir para o usuário inserir um número e depois calcular o fatorial desse número usando a função que criamos.
def main():
try:
numero = int(input("Digite um número inteiro positivo para calcular o fatorial: "))
if numero < 0:
print("Por favor, digite um número inteiro positivo.")
else:
resultado = fatorial(numero)
print(f"O fatorial de {numero} é {resultado}.")
except ValueError:
print("Entrada inválida! Por favor, digite um número inteiro.")
if __name__ == "__main__":
main()
Explicação:
- Linha 1: Definimos a função
main
que vai ser o nosso programa principal. - Linha 2: Usamos
try
para tentar executar o bloco de código e capturar possíveis erros. - Linha 3: Pedimos para o usuário digitar um número inteiro positivo.
- Linha 4-5: Verificamos se o número é negativo. Se for, mostramos uma mensagem pedindo um número positivo.
- Linha 7: Se o número for válido, chamamos a função
fatorial
e armazenamos o resultado. - Linha 8: Exibimos o resultado para o usuário.
- Linha 9-10: Se o usuário digitar algo que não seja um número inteiro, mostramos uma mensagem de erro.
- Linha 12-13: Garantimos que o programa principal seja executado apenas quando o script for rodado diretamente.
Resposta
Aqui está o código completo que calcula o fatorial de um número inteiro positivo usando recursividade e testa a função:
def fatorial(n):
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n - 1)
def main():
try:
numero = int(input("Digite um número inteiro positivo para calcular o fatorial: "))
if numero < 0:
print("Por favor, digite um número inteiro positivo.")
else:
resultado = fatorial(numero)
print(f"O fatorial de {numero} é {resultado}.")
except ValueError:
print("Entrada inválida! Por favor, digite um número inteiro.")
if __name__ == "__main__":
main()
Exemplo de execução:
Digite um número inteiro positivo para calcular o fatorial: 5
O fatorial de 5 é 120.