首页 > 代码库 > 快速乘方
快速乘方
an = an/2*an/2 , n为even
an = a(n-1)/2*a(n-1)/2 *a , n为odd
double powerWithUnsignedExponent(double base, unsigned int exponent){ if(0 == exponent) return 1; if(1 == exponent) return base; double result = powerWithUnsignedExponent(base, exponnet >> 1); result *= result; if(1 == exponent & 0x1) //二进制末尾为1,一定是奇数 result *= base; return result;}
借助位运算判断奇偶性:
a & 0x1 == 0; //even偶数
a & 0x1 != 0; //odd奇数
快速乘方
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。