Buscar

Considere uma função recursiva f(x) com o seguinte formato: f(x) = 1, se x = 1;f(x) = f(x/2), se x for um número par;f(x) = f(3x+1), se x for um nú...

Considere uma função recursiva f(x) com o seguinte formato:

  • f(x) = 1, se x = 1;
  • f(x) = f(x/2), se x for um número par;
  • f(x) = f(3x+1), se x for um número ímpar.

Sabe-se que, para qualquer número x maior que zero, f(x) sempre terminará após algumas chamadas recursivas. Escreva um programa que, dado um número x > 0, calcula quantas chamadas recursivas são necessárias até que f(x) seja igual a 1. 

💡 1 Resposta

User badge image

Ed Verified user icon

Para resolver esse problema, podemos criar uma função recursiva que chama a si mesma até que o valor de x seja igual a 1. A cada chamada recursiva, verificamos se o valor de x é par ou ímpar e chamamos a função recursiva correspondente. O número de chamadas recursivas necessárias é armazenado em uma variável e é retornada no final da função. Segue abaixo um exemplo de código em Python que resolve esse problema: ``` def f(x): if x == 1: return 1 elif x % 2 == 0: return f(x/2) + 1 else: return f(3*x+1) + 1 x = int(input("Digite um número: ")) print("Número de chamadas recursivas necessárias:", f(x)) ``` Nesse código, a função `f(x)` recebe um número `x` como entrada e retorna o número de chamadas recursivas necessárias para que `f(x)` seja igual a 1. A variável `x` é lida do usuário através da função `input()`. O resultado é impresso na tela através da função `print()`.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais