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:
  1. 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.
  2. 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 que 0! = 1 e 1! = 1.
  • Linha 4: Se n for maior que 1, a função retorna n multiplicado pelo fatorial de n - 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)