روزی روزگاری، خدمتکار دانایی بود که جانِ شاهزادهای را نجات داد. پادشاه وعده داد هر آنچه خدمتکار به ذهنش برسد، بپردازد. خدمتکار که میدانست پادشاه عاشق شطرنج است، به پادشاه گفت که دانههای گندم میخواهد. یک دانه روی خانهی اول صفحهی شطرنج و در هر خانهی بعدی، تعداد دانهها دو برابر میشود.
تعداد دانههای گندم روی یک صفحهی شطرنج را محاسبه کنید.
یک صفحهی شطرنج ۶۴ خانه دارد. خانهی ۱ یک دانه دارد، خانهی ۲ دو دانه دارد، خانهی ۳ چهار دانه دارد و به همین ترتیب، هر بار دو برابر میشود.
کدی بنویسید که این موارد را محاسبه کند:
بر اساس مستندات Vim:
با فرض اینکه از اعداد ۶۴ بیتی استفاده میشود (به
v:numbersizeنگاه کنید)، یک عدد بدون علامت به 0x7fffffffffffffff یا 9223372036854775807 کوتاه میشود.
به عبارت دیگر، Vim script نمیتواند هیچ عددی بزرگتر یا مساوی 2^63 را بهصورت عدد صحیح بیان کند.
برخی از تستهای این تمرین به اعداد صحیح ۶۴ بیتی نیاز دارند که فراتر از محدودیت اندازهی عدد صحیح در Vim script است. به خاطر همین محدودیت، نتایج محاسبات با رشتهای سنجیده میشوند که مقدار عدد صحیح را بیان میکند، نه با بیان پاسخ بهصورت Integer. آیا میتوانید با پرهیز از اعدادی که از آنچه زبان مستقیماً اجازه میدهد بزرگترند، این مسئله را حل کنید؟
در Exercism ثبتنام کنید تا Vim script را همراه با 89 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.