ट्रैक
/
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 बिट हैं।

प्रतिबंध

अपनी स्टैंडर्ड लाइब्रेरी में मिलने वाली उस बिट-गिनती की सुविधा का इस्तेमाल न कीजिए! इसकी जगह इसे दूसरे बुनियादी टूल से खुद हल कीजिए।

परिशिष्ट

Note

ऊपर दिए गए निर्देश एक साझा रिपॉज़िटरी से आते हैं, ताकि सभी भाषा ट्रैक में एकरूपता बनी रहे। यह परिशिष्ट जहाँ ज़रूरत हो वहाँ कुछ और स्पष्टता देता है, या निर्देशों को इस तरह बदलता है कि वे Clojure ट्रैक के उद्देश्यों से बेहतर मेल खाएँ।

यह ध्यान रखना ज़रूरी है कि आप जो फंक्शन बना रहे हैं, उससे मिलती-जुलती काम करने वाली पहले से बनी बिल्ट-इन फंक्शन इस्तेमाल न कीजिए, क्योंकि ऐसा करने से इस अभ्यास से सीखने का जो उद्देश्य है, वह कमज़ोर पड़ जाएगा। Clojure में ऐसा कोई बिल्ट-इन फंक्शन नहीं है जो किसी संख्या में कितने बिट हैं यह गिन सके, इसलिए अपने कोड में आप Clojure का कोई भी फंक्शन इस्तेमाल कर सकते हैं। लेकिन Java में इस काम के लिए एक फंक्शन मौजूद है: bitCount.

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Clojure Exercism

Eliud के अंडे शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Clojure को 12 कॉन्सेप्ट105 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।