دانه

دانه

آسان

مقدمه

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

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

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

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

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

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

نکته

معمولاً به این نوع مسائل (که در آن‌ها پاسخ یک مسئله به پاسخ مسئله‌ی قبلی وابسته است) «بازگشت» می‌گویند. راه‌های مختلفی برای نوشتن کد بازگشتی وجود دارد؛ اگر با این مفهوم آشنا نیستید، شاید ارزش داشته باشد که کمی درباره‌اش تحقیق کنید. Pharo برای بازگشت به خوبی بهینه‌سازی شده است و الگویی پرکاربرد به شمار می‌رود.

نکته: در مشخصات اصلی مسئله، grainsCalculator با #square فراخوانی می‌شود، اما ما نام این متد را به #atSquare: تغییر داده‌ایم؛ نامی که بیشتر به Smalltalk شبیه است و بهتر نشان می‌دهد که شما پاسخی را «در یک خانه» می‌خواهید.

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

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

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