مسیرها
/
Clojure
Clojure
/
تمرین‌ها
/
تخم‌های الیود
تخم‌های الیود

تخم‌های الیود

آسان

مقدمه

دوست شما Eliud یک مزرعه را از مادربزرگش Tigist به ارث برده است. مادربزرگش مخترع بود و عادت داشت وسایل را به شکلی بیش از حد پیچیده بسازد. مرغدانی یک نمایشگر دیجیتال دارد. این نمایشگر عددی رمزگذاری‌شده را نشان می‌دهد که موقعیت همه‌ی تخم‌مرغ‌هایی را که می‌توان جمع کرد، مشخص می‌کند.

Eliud از شما می‌خواهد برنامه‌ای بنویسید که تعداد واقعی تخم‌مرغ‌های داخل مرغدانی را نشان دهد.

رمزگذاری اطلاعات موقعیت به این صورت محاسبه می‌شود:

  1. مکان‌های بالقوه‌ی تخم‌گذاری را بررسی کنید و برای هر تخم‌مرغ موجود یک 1 و برای هر مکان خالی یک 0 یادداشت کنید.
  2. عدد را از دودویی به دهدهی تبدیل کنید.
  3. نتیجه را روی نمایشگر نشان دهید.

مثال ۱

هفت جعبه‌ی لانه‌ی مجزا که در یک ردیف چیده شده‌اند و لانه‌های اول، سوم، چهارم و هفتم هر کدام یک تخم‌مرغ دارند.

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

دودویی حاصل

۱۰۱۱۰۰۱

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

عدد دهدهی روی نمایشگر

۸۹

تعداد واقعی تخم‌مرغ‌های داخل مرغدانی

۴

مثال ۲

هفت جعبه‌ی لانه‌ی مجزا که در یک ردیف چیده شده‌اند و تنها لانه‌ی چهارم یک تخم‌مرغ دارد.

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

دودویی حاصل

۰۰۰۱۰۰۰

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

عدد دهدهی روی نمایشگر

۸

تعداد واقعی تخم‌مرغ‌های داخل مرغدانی

۱

دستورالعمل‌ها

وظیفه‌ی شما این است که تعداد بیت‌های ۱ را در نمایش دوییی یک عدد بشمارید.

محدودیت‌ها

به سراغ آن قابلیت شمارش بیت که کتابخانه‌ی استانداردتان در اختیارتان می‌گذارد نروید! در عوض، این یکی را خودتان با ابزارهای پایه‌ی دیگر حل کنید.

پیوست

Note

دستورالعمل‌های بالا برای تضمین یکدستی میان همه‌ی مسیرهای زبان، با یک مخزن مشترک همگام‌سازی شده‌اند. این پیوست، در صورت نیاز، توضیح بیشتری می‌دهد یا دستورالعمل‌ها را تغییر می‌دهد تا با اهداف مسیر Clojure هم‌راستاتر شود.

مهم است که از توابع داخلی موجودی که کارکردی مشابه تابعی دارند که در حال پیاده‌سازی آن هستید استفاده نکنید. این کار ارزش یادگیری مورد نظر این تمرین را کاهش می‌دهد. در Clojure، تابع داخلی‌ای برای شمردن تعداد بیت‌های یک عدد وجود ندارد، پس می‌توانید در پیاده‌سازی خود از هر تابع Clojure استفاده کنید. اما Java برای این کار تابعی دارد: bitCount.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Clojure Exercism

آماده‌اید تخم‌های الیود را شروع کنید؟

در Exercism ثبت‌نام کنید تا Clojure را همراه با 12 مفهوم105 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.