php如何实现数值的整数次方(代码实例)
来源:转载
发布时间:2018-11-21 11:48:38
阅读量:1381
本篇文章给大家带来的内容是关于php如何实现数值的整数次方(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路:
1.指数的二进制表达10^6次方 可以表示10^110(二进制) 10^100 * 10^10 * 10^000=>10^4 * 10^2
2.移位运算
1 2 3 4 5 6 | while(n!=0){
if((n&1)==1)
res*=curr;
curr*=curr;
n>>=1;
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php
function Power($base, $n){
$res = 1;
$curr = $base;
$exponent;
if($n>0){
$exponent = $n;
}else if($n<0){
if($base==0) return 0;
$exponent = -$n;
}else{
return 1;
}
while($exponent!=0){
if(($exponent&1)==1)
$res*=$curr;
$curr*=$curr;
$exponent>>=1;
}
return $n>=0?$res:(1/$res);
}
$a=Power(10,6);
var_dump($a);
~
|