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()用于计算数字的幂。这是一个非递归函数。在该函数中,使用了一个从1到y的for循环。对于循环的每次迭代,x乘以幂。

因此,x乘以自身y倍,结果存储在幂中。这导致x ^ y被存储在幂中。然后,电源返回到该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);