이 기사의 내용은 PHP가 값의 정수 거듭제곱을 구현하는 방법(코드 예제)에 대한 것입니다. 필요한 참조 값이 있으므로 도움이 되기를 바랍니다. .
double 유형의 부동 소수점 수 밑과 int 유형의 정수 지수가 제공됩니다. 밑의 지수제곱을 구합니다.
아이디어:
1 10^6의 거듭제곱에 대한 지수의 이진 표현은 10^110(이진수) 10^100 * 10^10 * 10을 나타낼 수 있습니다. ^000=> ;10^4 * 10^2
2. 교대조작
while(n!=0){ if((n&1)==1) res*=curr; curr*=curr;// 翻倍 n>>=1;// 右移一位 }
<?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{// n==0 return 1;// 0的0次方 } //$exponent转成二进制,有多少位就循环多少次,curr就执行n+1次方,如果当前位是1的就结果相乘 while($exponent!=0){ if(($exponent&1)==1) $res*=$curr; $curr*=$curr;// 翻倍 //var_dump($curr); $exponent>>=1;// 右移一位 } return $n>=0?$res:(1/$res);//指数是负数的情况 } $a=Power(10,6); var_dump($a); ~
위 내용은 PHP에서 숫자 값의 정수 거듭제곱을 구현하는 방법(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!