Lũy thừa của số tính bằng x^y, x là cơ số, y là số mũ.
Ví dụ:
x = 2, y = 10 x^y = 1024 Tức 2^10
Lũy thừa có thể tính bằng chương trình đệ quy và không đệ quy. Cả hai cách:
Lũy thừa bằng chương trình KHÔNG đệ quy
Chương trình tìm lũy thừa không đệ quy:
Ví dụ
#include <iostream>
using namespace std;
int power(int x, int y) {
int i, power = 1;
if (y == 0)
return 1;
for (i = 1; i <= y; i++)
power = power * x;
return power;
}
int main() {
int x = 3, y = 4;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "x^y = " << power(x, y);
return 0;
}
Kết quả đầu ra
x = 3 y = 4 x^y = 81
Trong chương trình, hàm power() tính lũy thừa không đệ quy. Vòng for chạy 1 đến y. Mỗi vòng x nhân với power. x tự nhân y lần, kết quả lưu trong power, tức x^y. Trả về power:
int power(int x, int y) {
int i, power = 1;
if (y == 0)
return 1;
for (i = 1; i <= y; i++)
power = power * x;
return power;
}
Trong main(), hiển thị x, y, x^y:
cout << "x = " << x << endl; cout << "y = " << y << endl; cout << "x^y = " << power(x, y);
Lũy thừa bằng chương trình ĐỆ QUY
Chương trình tìm lũy thừa đệ quy:
Ví dụ
#include <iostream>
using namespace std;
int power(int x, int y) {
if (y == 0)
return 1;
else if (y % 2 == 0)
return power(x, y / 2) * power(x, y / 2);
else
return x * power(x, y / 2) * power(x, y / 2);
}
int main() {
int x = 3, y = 4;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "x^y = " << power(x, y);
return 0;
}
Kết quả đầu ra
x = 3 y = 4 x^y = 81
Trong chương trình, power() đệ quy. Nếu y == 0 trả về 1. Nếu y chẵn, gọi đệ quy x, y/2 trả về bình phương. Nếu y lẻ, trả về x * power(x, y/2)^2:
int power(int x, int y) {
if (y == 0)
return 1;
else if (y % 2 == 0)
return power(x, y / 2) * power(x, y / 2);
else
return x * power(x, y / 2) * power(x, y / 2);
}
Trong main(), hiển thị x, y, x^y:
cout << "x = " << x << endl; cout << "y = " << y << endl; cout << "x^y = " << power(x, y);