Διαδρομές
/
Clojure
Clojure
/
Ασκήσεις
/
Τα Αυγά του Eliud
Τα Αυγά του Eliud

Τα Αυγά του Eliud

Εύκολο

Εισαγωγή

Η φίλη σου η Eliud κληρονόμησε μια φάρμα από τη γιαγιά της, την Tigist. Η γιαγιά της ήταν εφευρέτρια και είχε την τάση να φτιάχνει πράγματα με υπερβολικά περίπλοκο τρόπο. Το κοτέτσι έχει μια ψηφιακή οθόνη που δείχνει έναν κωδικοποιημένο αριθμό, ο οποίος αντιπροσωπεύει τις θέσεις όλων των αυγών που θα μπορούσαν να μαζευτούν.

Η Eliud σου ζητάει να γράψεις ένα πρόγραμμα που δείχνει τον πραγματικό αριθμό των αυγών στο κοτέτσι.

Η κωδικοποίηση της πληροφορίας για τις θέσεις υπολογίζεται ως εξής:

  1. Σάρωσε τα πιθανά σημεία ωοτοκίας και σημείωσε 1 για ένα αυγό που υπάρχει ή 0 για ένα άδειο σημείο.
  2. Μετέτρεψε τον αριθμό από δυαδικό σε δεκαδικό.
  3. Δείξε το αποτέλεσμα στην οθόνη.

Παράδειγμα 1

Επτά μεμονωμένες φωλιές σε μια σειρά, όπου η πρώτη, η τρίτη, η τέταρτη και η έβδομη φωλιά έχουν από ένα αυγό.

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

Ο δυαδικός αριθμός που προκύπτει

1011001

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

Ο δεκαδικός αριθμός στην οθόνη

89

Τα πραγματικά αυγά στο κοτέτσι

4

Παράδειγμα 2

Επτά μεμονωμένες φωλιές σε μια σειρά, όπου μόνο η τέταρτη φωλιά έχει ένα αυγό.

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

Ο δυαδικός αριθμός που προκύπτει

0001000

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

Ο δεκαδικός αριθμός στην οθόνη

8

Τα πραγματικά αυγά στο κοτέτσι

1

Οδηγίες

Η αποστολή σου είναι να μετρήσεις τον αριθμό των 1 bit στη δυαδική αναπαράσταση ενός αριθμού.

Περιορισμοί

Μην αγγίξεις αυτή τη λειτουργικότητα μέτρησης bit που σου παρέχει η τυπική βιβλιοθήκη σου! Λύσε το μόνος σου χρησιμοποιώντας άλλα βασικά εργαλεία.

Παράρτημα

Note

Οι παραπάνω οδηγίες είναι συγχρονισμένες με ένα κοινόχρηστο αποθετήριο, ώστε να διασφαλίζεται η συνέπεια σε όλα τα track των γλωσσών. Αυτό το παράρτημα παρέχει πρόσθετες διευκρινίσεις ή τροποποιεί τις οδηγίες όπως χρειάζεται, ώστε να ευθυγραμμίζονται καλύτερα με τους στόχους του track της Clojure.

Είναι σημαντικό να μη χρησιμοποιήσεις υπάρχουσες ενσωματωμένες συναρτήσεις με παρόμοια λειτουργικότητα με τη συνάρτηση που υλοποιείς, γιατί κάτι τέτοιο θα μείωνε την επιδιωκόμενη μαθησιακή αξία της άσκησης. Στην Clojure δεν υπάρχει ενσωματωμένη συνάρτηση για να μετρήσεις τον αριθμό των bit σε έναν αριθμό, οπότε μπορείς να χρησιμοποιήσεις οποιαδήποτε συνάρτηση της Clojure στην υλοποίησή σου. Ωστόσο, η Java περιλαμβάνει μια συνάρτηση για αυτόν τον σκοπό: bitCount.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Clojure Exercism

Έτοιμος να ξεκινήσεις την άσκηση Τα Αυγά του Eliud;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Clojure με 12 έννοιες105 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.