تعداد دانههای گندم روی یک صفحهی شطرنج را حساب کنید، با این فرض که تعداد دانهها در هر خانه دو برابر میشود.
روزی خدمتکاری دانا جان یک شاهزاده را نجات داد. پادشاه وعده داد هر چیزی را که خدمتکار در ذهنش میپروراند بپردازد. خدمتکار که میدانست پادشاه عاشق شطرنج است، به پادشاه گفت که دانههای گندم میخواهد. یک دانه در خانهی اول صفحهی شطرنج و تعداد دانهها در هر خانهی بعدی دو برابر میشود.
صفحهی شطرنج ۶۴ خانه دارد (خانهی ۱ یک دانه دارد، خانهی ۲ دو دانه و به همین ترتیب).
کدی بنویسید که نشان دهد:
معمولاً به این نوع مسائل (که در آنها پاسخ یک مسئله به پاسخ مسئلهی قبلی وابسته است) «بازگشت» میگویند. راههای مختلفی برای نوشتن کد بازگشتی وجود دارد؛ اگر با این مفهوم آشنا نیستید، شاید ارزش داشته باشد که کمی دربارهاش تحقیق کنید. Pharo برای بازگشت به خوبی بهینهسازی شده است و الگویی پرکاربرد به شمار میرود.
نکته: در مشخصات اصلی مسئله، grainsCalculator با #square فراخوانی میشود، اما ما نام این متد را به #atSquare: تغییر دادهایم؛ نامی که بیشتر به Smalltalk شبیه است و بهتر نشان میدهد که شما پاسخی را «در یک خانه» میخواهید.