Power(int base, int exponent) 函数实现

来源:互联网 发布:egd网络小黄金 编辑:程序博客网 时间:2024/05/17 05:05

 这个是个高效的算法,时间复杂度为 O(logn)

原理:

a的n次方:


#include<iostream>#include<cmath>using namespace std;double PowerWithUnisgnedExponent(double base ,unsigned int exponent){if(exponent == 0)return 1;if(exponent == 1)return base;double result = PowerWithUnisgnedExponent(base, exponent >> 1);result *= result;if(exponent & 0x1 == 1)result *=base;return result;}double power(double base, int exponent){double result = PowerWithUnisgnedExponent(base,abs(exponent));if(exponent < 0)return 1.0/result;elsereturn result;}int main(){int base = 2;int exponent = 10;cout << power(base,exponent);return 0;}

原创粉丝点击