C++程式計算數字的冪


數字的冪可以計算為 x^y,其中 x 是數字,y 是其冪。

例如。

Let’s say, x = 2 and y = 10
   x^y =1024
   Here, x^y is 2^10

數字的冪可以使用遞迴和非遞迴程式來計算。以下是每種方法的示例。

使用非遞迴程式計算數字的冪

使用非遞迴程式查詢數字的冪的程式如下所示:

示例

 線上演示

#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;
   int y = 4;
   cout<<"x = "<<x<<endl;;
   cout<<"y = "<<y<<endl;
   cout<<"x^y = "<<power(x,y);
   return 0;
}
x = 3
y = 4
x^y = 81

在上述程式中,函式 power() 用於計算數字的冪。它是一個非遞迴函式。在函式中,使用了一個 for 迴圈,該迴圈從 1 執行到 y。對於迴圈的每次迭代,x 都乘以 power。

因此,x 自身乘以 y 次,結果儲存在 power 中。這導致 x^y 儲存在 power 中。然後將 power 返回到 main() 函式。

以下程式碼片段演示了這一點:

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

在 main() 中,顯示 x、y 和 x^y 的值。這在下面給出的程式碼片段中顯示:

cout<<"x = "<<x<<endl;;
cout<<"y = "<<y<<endl;
cout<<"x^y = "<<power(x,y);

使用遞迴程式計算數字的冪

使用遞迴程式查詢數字的冪的程式如下所示。

示例

 線上演示

#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;
   int y = 4;
   cout<<"x = "<<x<<endl;;
   cout<<"y = "<<y<<endl;
   cout<<"x^y = "<<power(x,y);
   return 0;
}

輸出

x = 3
y = 4
x^y = 81

在上述程式中,power() 是一個遞迴函式。如果 y 的值為 0,則返回 1。如果 y 是偶數,則它使用 x 和 y/2 的值遞迴呼叫自身,並返回 power(x, y/2)*power(x, y/2)。如果 y 是奇數,則它使用 x 和 y/2 的值遞迴呼叫自身,並返回 x*power(x, y/2)*power(x, y/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);
}

在 main() 中,顯示 x、y 和 x^y 的值。這在下面給出的程式碼片段中顯示。

cout<<"x = "<<x<<endl;;
cout<<"y = "<<y<<endl;
cout<<"x^y = "<<power(x,y);

更新於: 2020年6月24日

5K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告