php如何实现数值的整数次方(代码实例)
来源:转载
发布时间:2018-11-21 11:48:38
阅读量:982
本篇文章给大家带来的内容是关于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 );
~
|