Los casilleros ocupados
- O(log n) · Fácil
- Gratis
- Python
- JavaScript
- división
- dígitos
- ciclos
Enunciado
Eufemia cuida los casilleros del balneario. El tablero de la entrada es de los viejos: en vez de prender una lucecita por casillero, muestra un solo número. Ese número, escrito en binario, dice qué casilleros están ocupados: cada cifra 1 es un casillero con llave puesta y cada cifra 0 es uno libre. Escribe una función que reciba ese número, del 0 en adelante, y regrese cuántos casilleros están ocupados, o sea cuántos unos tiene el número escrito en binario.
Con 16 regresas 1: en binario el 16 es 10000 y trae un solo uno. Con 89 regresas 4, porque el 89 en binario es 1011001. Con 0 regresas 0: el tablero en ceros, ningún casillero ocupado.
Las cifras binarias se sacan dividiendo entre 2 y mirando lo que sobra: si sobra 1, esa cifra es un uno y ese casillero está ocupado; si sobra 0, está libre. Después te quedas con el resultado de la división y sigues, hasta que el número se acaba. No tienes que armar el texto en binario: aquí solo hay que contar.
El tablero de Eufemia lleva hasta 31 casilleros.
Ejemplos
El del ejemplo
16 → 1
Ochenta y nueve
89 → 4
Ocho casilleros seguidos
255 → 8
Dos ocupados y uno libre
6 → 2
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def ocupados(n):
passJavaScript
function ocupados(n) {
}Se abre en el navegador, con el editor y las pruebas. Es gratis y no hace falta cuenta para empezar.