আপনার বন্ধু 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
আপনার কাজ হলো একটি সংখ্যার বাইনারি রূপে ১ আছে এমন বিটের সংখ্যা গণনা করা।
আপনার স্ট্যান্ডার্ড লাইব্রেরিতে থাকা ওই বিট-গণনার সুবিধাটিতে হাত দেবেন না! বরং অন্য মৌলিক টুলস ব্যবহার করে এটি নিজে সমাধান করুন।
উপরের নির্দেশাবলি সব ভাষার ট্র্যাকে সামঞ্জস্য নিশ্চিত করতে একটি শেয়ার্ড রিপোজিটরির সাথে সিঙ্ক্রোনাইজ করা হয়েছে। এই পরিশিষ্টটি প্রয়োজন অনুসারে অতিরিক্ত স্পষ্টীকরণ দেয় বা নির্দেশাবলিতে পরিবর্তন আনে, যাতে তা Clojure ট্র্যাকের লক্ষ্যের সাথে আরও ভালোভাবে মিলে যায়।
আপনি যে ফাংশনটি ইমপ্লিমেন্ট করছেন, তার মতো একই কাজ করে এমন কোনো বিদ্যমান বিল্ট-ইন ফাংশন ব্যবহার না করাই জরুরি, কারণ তা করলে অনুশীলনীর কাঙ্ক্ষিত শেখার মূল্য কমে যাবে।
Clojure-এ একটি সংখ্যায় কতগুলো বিট আছে তা গোনার কোনো বিল্ট-ইন ফাংশন নেই, তাই আপনার ইমপ্লিমেন্টেশনে আপনি Clojure-এর যেকোনো ফাংশন ব্যবহার করতে পারেন।
তবে Java-তে এই উদ্দেশ্যে একটি ফাংশন আছে: bitCount.
Exercism-এ সাইন আপ করুন, Clojure ট্র্যাকের 12টি কনসেপ্ট105টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।