Escrever um programa para adivinhar um número de 0 a 99 pensado pelo usuário. A cada palpite do programa o usuário deverá informar se o número sugerido é menor, maior ou igual ao número pensado. O programa deverá mostrar quantas tentativas foram necessárias até o acerto.
Passo 1
A ideia é criar um programa que adivinhe um número entre 0 e 99 usando busca binária e conte quantas tentativas foram necessárias.
Inicializamos os limites do intervalo ( ,
) e um contador de tentativas (
).
Inicializamos os limites do intervalo (
Passo 2
Fazemos um loop onde calculamos o palpite do programa como a média inteira de
e
, incrementamos o contador de tentativas e perguntamos ao usuário se o palpite é “maior”, “menor” ou “igual” ao número pensado.
Passo 3
Dependendo da resposta:
– Se o usuário disser “menor” (ou seja, o número pensado é menor que o palpite), ajustamos .
– Se disser “maior” (número pensado é maior que o palpite), ajustamos .
– Se disser “igual”, encerramos o loop.
– Se o usuário disser “menor” (ou seja, o número pensado é menor que o palpite), ajustamos
– Se disser “maior” (número pensado é maior que o palpite), ajustamos
– Se disser “igual”, encerramos o loop.
Passo 4
Ao sair do loop, mostramos ao usuário quantas tentativas foram necessárias.
Resposta
# Programa para adivinhar um número de 0 a 99 usando busca binária
low = 0
high = 99
tries = 0
print("Pense em um número entre 0 e 99. Eu vou tentar adivinhar!")
while True:
guess = (low + high) // 2
tries += 1
# Pergunta ao usuário
resposta = input(f"Meu palpite é {guess}. O número pensado é 'maior', 'menor' ou 'igual'? ").strip().lower()
if resposta == 'menor':
# número pensado < palpite
high = guess - 1
elif resposta == 'maior':
# número pensado > palpite
low = guess + 1
elif resposta == 'igual':
print(f"Acertou! Foram necessárias {tries} tentativas.")
break
else:
print("Resposta inválida. Digite 'maior', 'menor' ou 'igual'.")