Logo Passei Direto
Buscar

Inglês

Outros
O trecho de código Python é uma função recursiva para o cálculo do fatorial de um número natural qualquer. Entretanto, apresenta um erro de programação.
Em qual linha está o erro e como consertá-lo para que a função cumpra corretamente o seu propósito?
o código deveria ser: "if (n == 1)". na linha 2.
o código deveria ser "return 0" na linha 3.
o código deveria ser "if (n == 1) and (n == 0):" na linha 2.
o código deveria ser "return Fatorial(n - 1) * n;" na linha 5.
o código deveria ser "return Fatorial(n) * n -1;" na linha 5.
User badge image
Questões Para o Saber

ontem

Respostas

User badge image

Ed Verified user icon

ontem

Para resolver a questão sobre o erro na função recursiva para o cálculo do fatorial, vamos analisar as opções apresentadas. 1. "if (n == 1)" na linha 2: Essa condição é correta, mas não é suficiente, pois o fatorial de 0 também deve ser considerado (0! = 1). 2. "return 0" na linha 3: Isso está incorreto, pois o fatorial de um número natural não deve retornar 0. O correto seria retornar 1 para o caso base. 3. "if (n == 1) and (n == 0):" na linha 2: Essa condição é errada, pois não pode ser verdadeira ao mesmo tempo. O correto seria usar um "ou" (or) para verificar se n é 0 ou 1. 4. "return Fatorial(n - 1) * n;" na linha 5: Essa linha está correta e é a forma correta de calcular o fatorial recursivamente. 5. "return Fatorial(n) * n - 1;" na linha 5: Isso está incorreto, pois não faz sentido calcular o fatorial de n e depois subtrair 1. Diante da análise, a opção que apresenta a correção necessária para que a função cumpra corretamente o seu propósito é: "return Fatorial(n - 1) * n;" na linha 5.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais perguntas desse material

Considere o seguinte trecho de um programa escrito em Python:
Qual será o resultado da execução desse programa?
Ocorrerá um erro porque a função print() precisa receber uma string como parâmetro
Será impresso na tela: 6
Ocorrerá um erro porque a chamada correta deveria ser math.sqrt(36)
Será impresso na tela: "6"
Será impresso na tela: 6.0

Mais conteúdos dessa disciplina