Cho a, b, n. So sánh a^n và b^n mà không tính trực tiếp (tránh tràn số).
Thuật toán
- Nếu n chẵn: lấy giá trị tuyệt đối |a|, |b| (vì lũy thừa chẵn luôn dương).
- So sánh a và b sau khi điều chỉnh.
- Nếu a==b → bằng nhau; a>b → a^n lớn hơn; ngược lại b^n lớn hơn.
Ví dụ triển khai (C++)
#include <bits/stdc++.h>
using namespace std;
void findGreater(int a, int b, int n) {
if (!(n & 1)) { 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;
}
Đầu ra
b^n is greater than a^n