今天笔试的时候碰到一个这样的问题:
用一种比a^n = a*a*a*......*a更优的算法来计算a的n次方。本人用二分法实现如下:
long power(int a,int n){
long r = 1;
int c = 0; //记录乘法执行的次数
while(n){
if(n&1){
r *= a;
c ++;
}
a *= a;
c ++;
n = n >> 1;
}
不知道C语言中的pow函数是如何实现的,有知道的同仁贴上来看看,分享分享........
转载于:https://blog.51cto.com/beyond99/407306