কম্পিউটার

C++ এ y মোডের মান (2 পাওয়ার x পর্যন্ত উত্থাপিত) খুঁজুন


এই সমস্যায়, আমাদের x এবং y দুটি মান দেওয়া হয়েছে। আমাদের কাজ হল y মোডের মান খুঁজে বের করা (2 পাওয়ার x পর্যন্ত) .

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

Input : x = 2, y = 19
Output : 3

ব্যাখ্যা

y % 2x = 19 % 22 = 19 % 4 = 3

সমাধান পদ্ধতি

সমস্যার একটি সহজ সমাধান হল সরাসরি 2 x এর মান গণনা করা pow() ফাংশন ব্যবহার করে তারপর y % 2 x এর মান খুঁজে বের করা .

সমস্যা সমাধানের আরেকটি পদ্ধতি হল লগ ব্যবহার করে। y <2 x এর মানের জন্য , অবশিষ্ট y। এই ক্ষেত্রে আমাদের আছে

লগ2 y

এছাড়াও, x এর সর্বোচ্চ মান 63 হতে পারে যার মান y এর জন্য ওভারফ্লো থাকবে। তাই, মোড x এর সমান।

এই সমস্ত বিবেচনায় নিয়ে, আমাদের কাছে এই তিনটি ক্ষেত্রে রয়েছে -

if(log y < x) -> return y
else if(x > 63) -> return y
else -> return (y % pow(2, x))

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <bits/stdc++.h>
using namespace std;
long long int findModVal(long long int y, int x){
   if (log2(y) < x)
      return y;
   if (x > 63)
      return y;
   return (y % (1 << x));
}
int main(){
   long long int y = 82829;
   int x = 12;
   cout<<"The value of y mod 2^x is "<<findModVal(y, x);
   return 0;
}

আউটপুট

The value of y mod 2^x is 909

  1. C++ এ প্রতিটি গাছের সারিতে সবচেয়ে বড় মান খুঁজুন

  2. C++ এ নিচের বাম গাছের মান খুঁজুন

  3. C++ ব্যবহার করে একটি পাওয়ার (পাউ) ফাংশন লিখুন

  4. একটি অক্ষরের ASCII মান খুঁজে পেতে C++ প্রোগ্রাম