Track
/
Clojure
Clojure
/
Esercizi
/
Le uova di Eliud
Le uova di Eliud

Le uova di Eliud

Facile

Introduzione

La tua amica Eliud ha ereditato una fattoria da sua nonna Tigist. Sua nonna era un'inventrice e aveva la tendenza a costruire le cose in modo eccessivamente complicato. Il pollaio ha un display digitale che mostra un numero codificato che rappresenta le posizioni di tutte le uova che si potrebbero raccogliere.

Eliud ti chiede di scrivere un programma che mostri il numero effettivo di uova nel pollaio.

La codifica delle informazioni sulla posizione si calcola come segue:

  1. Esamina i possibili punti di deposizione e segna un 1 per un uovo presente o uno 0 per un punto vuoto.
  2. Converti il numero da binario a decimale.
  3. Mostra il risultato sul display.

Esempio 1

Sette cassette nido individuali disposte in fila, in cui il primo, il terzo, il quarto e il settimo nido contengono ciascuno un uovo.

 _ _ _ _ _ _ _
|E| |E|E| | |E|

Il binario risultante

1011001

 _ _ _ _ _ _ _
|1|0|1|1|0|0|1|

Numero decimale sul display

89

Uova effettive nel pollaio

4

Esempio 2

Sette cassette nido individuali disposte in fila, in cui solo il quarto nido contiene un uovo.

 _ _ _ _ _ _ _
| | | |E| | | |

Il binario risultante

0001000

 _ _ _ _ _ _ _
|0|0|0|1|0|0|0|

Numero decimale sul display

8

Uova effettive nel pollaio

1

Istruzioni

Il tuo compito è contare il numero di bit pari a 1 nella rappresentazione binaria di un numero.

Restrizioni

Lascia stare la funzionalità di conteggio dei bit fornita dalla tua libreria standard! Risolvi questo esercizio da solo, usando invece altri strumenti di base.

Appendice

Note

Le istruzioni qui sopra sono sincronizzate con un repository condiviso per garantire la coerenza tra tutte le tracce dei linguaggi. Questa appendice fornisce chiarimenti aggiuntivi o modifica le istruzioni quando serve, per allinearle meglio agli obiettivi della traccia Clojure.

È importante non usare funzioni integrate già esistenti con funzionalità simili a quella che stai implementando: farlo ridurrebbe il valore formativo dell'esercizio. In Clojure non esiste una funzione integrata per contare il numero di bit in un numero, quindi puoi usare qualsiasi funzione di Clojure nella tua implementazione. Java, invece, ha una funzione che fa proprio questo: bitCount.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Clojure Exercism

Vuoi iniziare Le uova di Eliud?

Iscriviti a Exercism per imparare e padroneggiare Clojure con 12 concetti105 esercizi e il mentoring di persone reali, tutto gratis.