একদা এক জ্ঞানী ভৃত্য এক রাজপুত্রের প্রাণ বাঁচিয়েছিলেন। রাজা কথা দিলেন, ভৃত্যটি যা কিছু চাইতে পারে তিনি তাই দেবেন। রাজা যে দাবা ভালোবাসেন তা জেনে ভৃত্যটি রাজাকে বললেন, তিনি কিছু গমের দানা চান। দাবাবোর্ডের প্রথম ঘরে এক দানা, আর পরের প্রতিটি ঘরে দানার সংখ্যা দ্বিগুণ হয়ে চলবে।
দাবা বোর্ডে গমের দানার সংখ্যা হিসাব করুন।
দাবা বোর্ডে ৬৪টি ঘর থাকে। ১ নম্বর ঘরে একটি দানা, ২ নম্বর ঘরে দুটি দানা, ৩ নম্বর ঘরে চারটি দানা, এভাবেই প্রতি ঘরে দানার সংখ্যা দ্বিগুণ হতে থাকে।
এমন কোড লিখুন যা হিসাব করে:
এই ধরনের সমস্যাগুলোকে (যেখানে একটি উত্তর আগেরটির উপর নির্ভর করে) প্রায়ই রিকার্সন বলা হয়। রিকার্সন দিয়ে কোড লেখার বিভিন্ন উপায় আছে; আপনি যদি এটি নিয়ে আগে না জেনে থাকেন, তাহলে একটু খোঁজ নিয়ে দেখতে পারেন। Pharo রিকার্সনের জন্য বেশ ভালোভাবে অপ্টিমাইজ করা হয়েছে, এবং এটি একটি বহুল ব্যবহৃত প্যাটার্ন।
নোট: মূল সমস্যার স্পেসিফিকেশনে grainsCalculator-কে #square দিয়ে কল করা হয়, তবে আমরা এই মেথডের নাম বদলে #atSquare: করেছি, যা আরও Smalltalk-সদৃশ একটি নাম এবং এটি আরও ভালোভাবে বোঝায় যে আপনি "at a square" অবস্থানে একটি উত্তর চাইছেন।
Exercism-এ সাইন আপ করুন, Pharo ট্র্যাকের 50টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।