आपकी सहेली Eliud को उसकी दादी Tigist से एक खेत विरासत में मिला। उसकी दादी एक आविष्कारक थीं और उन्हें चीज़ें बहुत ही जटिल तरीके से बनाने की आदत थी। मुर्गी के दड़बे में एक डिजिटल डिस्प्ले लगा है। यह एक एनकोड की गई संख्या दिखाता है, जो उन सभी अंडों की जगह बताती है जिन्हें उठाया जा सकता है।
Eliud आपसे एक ऐसा प्रोग्राम लिखने के लिए कह रही हैं जो दड़बे में मौजूद अंडों की वास्तविक संख्या दिखाए।
जगह की जानकारी का एनकोडिंग इस तरह निकाला जाता है:
1, और खाली जगह पर 0। _ _ _ _ _ _ _
|E| |E|E| | |E|
_ _ _ _ _ _ _
|1|0|1|1|0|0|1|
89
4
_ _ _ _ _ _ _
| | | |E| | | |
_ _ _ _ _ _ _
|0|0|0|1|0|0|0|
8
1
आपको यह गिनना है कि किसी संख्या के बाइनरी रूप में कितने 1 बिट हैं।
अपनी स्टैंडर्ड लाइब्रेरी में मिलने वाली उस बिट-गिनती की सुविधा का इस्तेमाल न कीजिए! इसकी जगह इसे दूसरे बुनियादी टूल से खुद हल कीजिए।
ऊपर दिए गए निर्देश एक साझा रिपॉज़िटरी से आते हैं, ताकि सभी भाषा ट्रैक में एकरूपता बनी रहे। यह परिशिष्ट जहाँ ज़रूरत हो वहाँ कुछ और स्पष्टता देता है, या निर्देशों को इस तरह बदलता है कि वे Clojure ट्रैक के उद्देश्यों से बेहतर मेल खाएँ।
यह ध्यान रखना ज़रूरी है कि आप जो फंक्शन बना रहे हैं, उससे मिलती-जुलती काम करने वाली पहले से बनी बिल्ट-इन फंक्शन इस्तेमाल न कीजिए, क्योंकि ऐसा करने से इस अभ्यास से सीखने का जो उद्देश्य है, वह कमज़ोर पड़ जाएगा।
Clojure में ऐसा कोई बिल्ट-इन फंक्शन नहीं है जो किसी संख्या में कितने बिट हैं यह गिन सके, इसलिए अपने कोड में आप Clojure का कोई भी फंक्शन इस्तेमाल कर सकते हैं।
लेकिन Java में इस काम के लिए एक फंक्शन मौजूद है: bitCount.
Exercism पर साइन अप कीजिए और Clojure को 12 कॉन्सेप्ट105 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।