এই টিউটোরিয়ালে, আমরা এমন একটি প্রোগ্রাম লিখতে যাচ্ছি যা m 1 এবং m - 1 0 এর সাথে সবচেয়ে বড় সংখ্যা খুঁজে বের করে।
আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷- দুটি ভেরিয়েবল বিট এবং ফলাফল যথাক্রমে 2 এবং 1 দিয়ে শুরু করুন।
- একটি লুপ লিখুন যা 1 থেকে n পর্যন্ত পুনরাবৃত্তি করে।
- pow(2, bits) - 1) * (pow(2, bits - 1) দিয়ে পুনরাবৃত্তিকারী পরিবর্তনশীল মান আপডেট করুন।
- যদি পুনরাবৃত্তিমূলক ভেরিয়েবলটি n-এর থেকে কম হয়, তাহলে i দিয়ে ফলাফল আপডেট করুন।
- বিট সংখ্যা বৃদ্ধি করুন।
- রিটার্ন রিটার্ন।
উদাহরণ
আসুন কোডটি দেখি।
#include <bits/stdc++.h> using namespace std; long long getTheNumber(long long n) { long bits = 2; long long result = 1; long long i = 1; while (i < n) { i = (int)(pow(2, bits) - 1) * (pow(2, bits - 1)); if (i < n) { result = i; } bits++; } return result; } int main() { long long n = 654; cout << getTheNumber(n) << endl; return 0; }
আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
496
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।