এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যেটি সবচেয়ে বড় সংখ্যা খুঁজে বের করে যা x এর চেয়ে কম এবং সর্বাধিক k সেট বিট থাকা উচিত।
আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷- সংখ্যা x এবং k শুরু করুন।
- এক্স নম্বরে সেট বিটগুলি খুঁজুন।
- একটি লুপ লিখুন যা x - k.
- সেট বিট গণনা পুনরাবৃত্তি করে
- x এর মান x &(x - 1) দিয়ে আপডেট করুন।
- এক্স ফেরত দিন।
উদাহরণ
আসুন কোডটি দেখি।
#include <bits/stdc++.h>
using namespace std;
int largestNumberWithKBits(int x, int k) {
int set_bit_count = __builtin_popcount(x);
if (set_bit_count <= k) {
return x;
}
int diff = set_bit_count - k;
for (int i = 0; i < diff; i++) {
x &= (x - 1);
}
return x;
}
int main() {
int x = 65, k = 2;
cout << largestNumberWithKBits(x, k) << endl;
return 0;
} আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
65
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।