সমস্যা বিবরণ
তিনটি সংখ্যা a, b, n দেওয়া থাকলে, a^n এবং b^n-এর মধ্যে বড়টি কোনটি তা বের করুন। বড় সংখ্যা হলে সরাসরি পাওয়ার ক্যালকুলেট না করেই বের করা যায়।
সমাধানের পদ্ধতি
- যদি n বিজোড় (odd) না হয় (n even), তবে a এবং b-এর আבסলিউট মান নিন (কারণ নেগেটিভ^ইভেন = পজেটিভ)।
- তবে a এবং b তুলনা করুন:
- a == b → সমান
- a > b → a^n বড়
- a < b → b^n বড়
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void findGreater(int a, int b, int n) {
if (!(n & 1)) { // n even
a = abs(a);
b = abs(b);
}
if (a == b)
cout << "a^n is equal to b^n";
else if (a > b)
cout << "a^n is greater than b^n";
else
cout << "b^n is greater than a^n";
}
int main() {
int a = 12, b = 24, n = 5;
findGreater(a, b, n);
return 0;
}
আউটপুট
b^n is greater than a^n
ব্যাখ্যা
n=5 (বিজোড়), a=12, b=24। 12 < 24, তাই 12^5 < 24^5।
জটিলতা
- সময়: O(1)
- স্থান: O(1)