1.计算幂的常见算法是使用N-1次的乘法运算,使用一个for循环即可;
//注意int数据类型的大小限制
#include<iostream>
using namespace std;
int main()
{
int X, N;
cout << "input X and N:" << endl;
cin >> X;
cin>> N;
int result = X;
for (int i = 1; i < N ; i++)
{
result = result * X;
}
cout << result;
getchar();
}
一种高效的取幂运算是可以通过使用递归函数:
#include<iostream>
using namespace std;
int Func(int x, int n);
int main()
{
int X, N;
cout << "input X and N:" << endl;
cin >> X;
cin>> N;
int result=Func(X, N);
cout << result;
getchar();
}
int Func(int x, int n)
{
if (n == 0)
return 1;
if (n % 2 == 0)
return Func(x*x, n / 2);
else
return Func(x*x, (n - 1) / 2)*x;
}
可以将复杂度从O(N)降为O(logN).