Menu
CoddyTech

Steps to Reduce a Number to Zero

Comece com um número inteiro não negativo n e repita uma regra até que ele chegue a 0: se o número for par, divida-o por 2; se for ímpar, subtraia 1. Cada aplicação da regra corresponde a um passo. Retorne o número de passos necessários.

Função

numberOfSteps(n: integer) → integer
ninteger
o número inicial
Retornainteger
o número de etapas até que o número chegue a 0

Restrições

  • 0 ≤ n ≤ 231 - 1

Exemplos

Entrada
n = 14
Saída
6
Explicação
O número vai de 14 → 7 → 6 → 3 → 2 → 1 → 0: três divisões pela metade e três subtrações, 6 passos.

lock icon+12 testes ocultos ao enviar

challenge icon

Para ir além

Suponha que um número ímpar também possa aumentar em 1 em vez de diminuir. Qual é o menor número de etapas para chegar a 0 e qual escolha é a certa para 15?

Redefinir código
def numberOfSteps(n):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

n = 14

Esperado

6