কম্পিউটার

C++ এ pow(x, y) এর জন্য একটি পুনরাবৃত্তিমূলক O(Log y) ফাংশন লিখুন


এই সমস্যায়, আমাদের x এবং y দুটি পূর্ণসংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল একটি ফাংশন তৈরি করা যা pow(x,y) এর সমতুল্য হবে একটি পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে যা 0(লগ y) এর সময়ের জটিলতায় কাজটি সম্পূর্ণ করবে।

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

ইনপুট

x = 7 , y = 3

আউটপুট

343

pow(x,y) এর পুনরাবৃত্তিমূলক ফাংশনটি পুনরাবৃত্তি করবে এবং y এর বিজোড় মানের জন্য এটিকে x দ্বারা গুণ করে ফলাফল আপডেট করবে এবং প্রতিটি পুনরাবৃত্তিতে x থেকে x2 আপডেট করবে।

সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম

উদাহরণ

#include <iostream>
using namespace std;
void calcPower(int x, unsigned int y) {
   int result = 1;
   while (y > 0) {
      if (y & 1)
      result *= x;
      y = y >> 1;
      x = x * x;
   }
   cout<<result;
}
int main() {
   int x = 7;
   unsigned int y = 3;
   cout<<x<<" raised to "<<y<<" is ";
   calcPower(x,y);
   return 0;
}

আউটপুট

raised to 3 is 343

  1. সি++ এ জটিল সংখ্যার জন্য asin() ফাংশন?

  2. C++ এ একটি ফাংশন/পদ্ধতির জন্য আমি কখন 'ইনলাইন' কীওয়ার্ড লিখব?

  3. C++ এ log() ফাংশন

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