এই সমস্যায়, আমাদের 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