Parcours
/
Clojure
Clojure
/
Exercices
/
Les œufs d'Eliud
Les œufs d'Eliud

Les œufs d'Eliud

Facile

Introduction

Ton amie Eliud a hérité d'une ferme de sa grand-mère Tigist. Sa mamie était inventrice et avait tendance à construire les choses de façon exagérément compliquée. Le poulailler dispose d'un affichage numérique qui indique un nombre encodé représentant les positions de tous les œufs que l'on pourrait ramasser.

Eliud te demande d'écrire un programme qui affiche le nombre exact d'œufs dans le poulailler.

L'encodage des positions est calculé comme suit :

  1. Parcours les emplacements potentiels de ponte et note un 1 pour un œuf présent ou un 0 pour un emplacement vide.
  2. Convertis le nombre binaire en décimal.
  3. Montre le résultat sur l'affichage.

Exemple 1

Sept pondoirs individuels alignés en rangée, dont les premier, troisième, quatrième et septième contiennent chacun un seul œuf.

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

Le binaire obtenu

1011001

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

Le nombre décimal affiché

89

Le nombre exact d'œufs dans le poulailler

4

Exemple 2

Sept pondoirs individuels alignés en rangée, dont seul le quatrième contient un œuf.

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

Le binaire obtenu

0001000

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

Le nombre décimal affiché

8

Le nombre exact d'œufs dans le poulailler

1

Instructions

Ta tâche est de compter le nombre de bits à 1 dans la représentation binaire d'un nombre.

Restrictions

Ne touche pas à cette fonctionnalité de comptage de bits fournie par ta bibliothèque standard ! Résous-le toi-même avec d'autres outils de base.

Annexe

Note

Les instructions ci-dessus sont synchronisées avec un dépôt partagé afin de garantir la cohérence entre tous les parcours. Cette annexe apporte des clarifications supplémentaires ou modifie les instructions si nécessaire, pour mieux les aligner sur les objectifs du parcours Clojure.

Il est important de ne pas utiliser de fonctions intégrées existantes dont le fonctionnement est similaire à celui de la fonction que tu es en train d'implémenter, car cela réduirait l'intérêt pédagogique de l'exercice. En Clojure, il n'existe pas de fonction intégrée pour compter le nombre de bits d'un nombre, tu peux donc utiliser n'importe quelle fonction de Clojure dans ton implémentation. En revanche, Java propose bel et bien une fonction pour cela : bitCount.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Clojure Exercism

Prêt à commencer Les œufs d'Eliud ?

Inscris-toi sur Exercism pour apprendre et maîtriser Clojure avec 12 concepts105 exercices, et un vrai mentorat humain, le tout gratuitement.