Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tính lũy thừa của một số


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);