Escreva uma função recursiva para calcular o fatorial e use a função pedindo ao usuário o valor que será calculado.
Passo 1
Beleza, vamos resolver esse exercício juntos! A pergunta pede para a gente escrever uma função recursiva para calcular o fatorial e usar essa função pedindo ao usuário o valor que será calculado. Para isso, vamos precisar entender dois conceitos principais:
-
Fatorial: É uma operação matemática representada por
n!
que significa o produto de todos os números inteiros positivos de 1 atén
. Por exemplo,5! = 5 × 4 × 3 × 2 × 1 = 120
. -
Recursão: É uma técnica de programação onde uma função chama a si mesma para resolver subproblemas menores até chegar a um caso base, que é resolvido sem mais chamadas.
Vamos usar esses conceitos para criar nossa função!
Passo 2
Primeiro, vamos definir a nossa função recursiva para calcular o fatorial. Em programação, uma função recursiva precisa ter:
- Caso base: A condição que para a recursão. No fatorial, quando
n
é igual a 0 ou 1, o fatorial é 1. - Chamada recursiva: A função chamando a si mesma com um valor menor, para aproximar do caso base.
Aqui está como ficaria em código:
def fatorial(n):
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n - 1)
Passo 3
Vamos entender o que está acontecendo na função
fatorial
:- Linha 2: Verifica se
n
é 0 ou 1. Se for, retorna 1 porque sabemos que0! = 1
e1! = 1
. - Linha 4: Se
n
for maior que 1, a função retornan
multiplicado pelo fatorial den - 1
. Isso faz com que a função se chame novamente com um número menor, indo em direção ao caso base.
Esse é o coração da recursão: resolver um problema grande dividindo-o em problemas menores até chegar a um que sabemos resolver diretamente.
Passo 4
Agora, vamos criar uma parte do código que pega o valor do usuário e usa a função
fatorial
para calcular o resultado. Vamos usar a função input
para isso:numero = int(input("Digite um número para calcular o fatorial: "))
resultado = fatorial(numero)
print(f"O fatorial de {numero} é {resultado}")
Passo 5
Vamos juntar tudo para ver como funciona:
def fatorial(n):
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n - 1)
numero = int(input("Digite um número para calcular o fatorial: "))
resultado = fatorial(numero)
print(f"O fatorial de {numero} é {resultado}")
Quando você rodar esse código, ele vai pedir para você digitar um número. Por exemplo, se você digitar
5
, o programa vai calcular 5!
que é 120
e mostrar na tela:Digite um número para calcular o fatorial: 5
O fatorial de 5 é 120
Resposta
O fatorial foi calculado com sucesso! Por exemplo, se o usuário digitar 5, o programa retornará:
O fatorial de 5 é 120
Exercícios relacionados
Imagine que temos uma lista em um arquivo de tamanho N. Agora queremos saber quantos elementos ímpares e quantos elementos pares temos nessa lista e o programa deve retornar se a lista tem mais números ímpares ou números pares.
Escreva uma função que receba a base e a altura de um triângulo e retorne sua área
base x altura
e use a função pedindo ao usuário as medidas da base e altura.
Realize as simulações das expressões e informe o seu valor lógico (True ou False).
Quantas milhas existem em 10 km ? ( 1.61 km em 1 milha)