دانه

دانه

آسان

مقدمه

روزی روزگاری، خدمتکار دانایی بود که جانِ شاهزاده‌ای را نجات داد. پادشاه وعده داد هر آنچه خدمتکار به ذهنش برسد، بپردازد. خدمتکار که می‌دانست پادشاه عاشق شطرنج است، به پادشاه گفت که دانه‌های گندم می‌خواهد. یک دانه روی خانه‌ی اول صفحه‌ی شطرنج و در هر خانه‌ی بعدی، تعداد دانه‌ها دو برابر می‌شود.

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

تعداد دانه‌های گندم روی یک صفحه‌ی شطرنج را محاسبه کنید.

یک صفحه‌ی شطرنج ۶۴ خانه دارد. خانه‌ی ۱ یک دانه دارد، خانه‌ی ۲ دو دانه دارد، خانه‌ی ۳ چهار دانه دارد و به همین ترتیب، هر بار دو برابر می‌شود.

کدی بنویسید که این موارد را محاسبه کند:

  • تعداد دانه‌های روی یک خانه‌ی مشخص
  • تعداد کل دانه‌ها روی صفحه‌ی شطرنج

اعداد در Euphoria

در Euphoria، یک atom می‌تواند هر نوع عددی را در خود نگه دارد و زیرگونه‌ای به نام integer برای اعداد صحیح در نظر گرفته شده است. در زبان‌های شبیه C می‌توان این تمرین را با برگرداندن یک عدد صحیح ۶۴ بیتی بدون علامت حل کرد.

اما اعداد صحیح در Euphoria علامت‌دار هستند و یک بیت کوچک‌تر از کلمه‌ی ماشین‌اند، از این رو برای این تمرین بیش از حد کوچک‌اند، در حالی که atomها می‌توانند اعداد صحیح بزرگ‌تری را با دقت ۶۴ بیتی لازم نگه دارند.

۳۲ بیتی

نسخه‌ی ۳۲ بیتی Euphoria هم وجود دارد که هنوز باقی مانده است تا برنامه‌های قدیمی بتوانند در صورت نبود نسخه‌ی ۶۴ بیتی از dll/soهای ۳۲ بیتی از پیش ساخته‌شده استفاده کنند، یا در حالتی که «wrapper» مربوط به آن پر از آفست‌های ۳۲ بیتی سخت‌کدشده باشد. این نسخه برای حل این کار کاملاً ناکافی است، چون آن atomها فقط ۵۳ بیت دقت دارند. اگر در حل این تمرین به‌صورت محلی مشکل دارید، مطمئن شوید که از نسخه‌ی ۶۴ بیتی Euphoria استفاده می‌کنید.

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

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

در Exercism ثبت‌نام کنید تا Euphoria را همراه با 64 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.