একদা এক জ্ঞানী ভৃত্য এক রাজপুত্রের প্রাণ বাঁচিয়েছিলেন। রাজা কথা দিলেন, ভৃত্যটি যা কিছু চাইতে পারে তিনি তাই দেবেন। রাজা যে দাবা ভালোবাসেন তা জেনে ভৃত্যটি রাজাকে বললেন, তিনি কিছু গমের দানা চান। দাবাবোর্ডের প্রথম ঘরে এক দানা, আর পরের প্রতিটি ঘরে দানার সংখ্যা দ্বিগুণ হয়ে চলবে।
দাবা বোর্ডে গমের দানার সংখ্যা হিসাব করুন।
দাবা বোর্ডে ৬৪টি ঘর থাকে। ১ নম্বর ঘরে একটি দানা, ২ নম্বর ঘরে দুটি দানা, ৩ নম্বর ঘরে চারটি দানা, এভাবেই প্রতি ঘরে দানার সংখ্যা দ্বিগুণ হতে থাকে।
এমন কোড লিখুন যা হিসাব করে:
Vim-এর ডকুমেন্টেশন অনুযায়ী:
ধরে নেওয়া হয় ৬৪ বিট সংখ্যা ব্যবহৃত হচ্ছে (দেখুন v:numbersize), সেক্ষেত্রে একটি আনসাইনড সংখ্যাকে 0x7fffffffffffffff বা 9223372036854775807-এ ছেঁটে ফেলা হয়।
অন্য কথায়, Vim স্ক্রিপ্ট 2^63 বা তার চেয়ে বড় কোনো সংখ্যাকে ইন্টিজার হিসেবে প্রকাশ করতে পারে না।
এই অনুশীলনীর কিছু টেস্টে ৬৪ বিট ইন্টিজার প্রয়োজন, যা Vim স্ক্রিপ্টের ইন্টিজার আকারের সীমাবদ্ধতার বাইরে। এই সীমাবদ্ধতার কারণে হিসাবের ফলাফলগুলোকে ইন্টিজার হিসেবে প্রকাশ করার বদলে, ইন্টিজার মান প্রকাশ করে এমন একটি স্ট্রিংয়ের সঙ্গে মিলিয়ে পরীক্ষা করা হয়। ভাষাটি সরাসরি যে পরিমাণ বড় সংখ্যা অনুমোদন করে, তার চেয়ে বড় সংখ্যা এড়িয়ে আপনি কি এটি সমাধান করতে পারবেন?
Exercism-এ সাইন আপ করুন, Vim script ট্র্যাকের 89টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।