Heim > Backend-Entwicklung > PHP-Tutorial > So implementieren Sie eine ganzzahlige Potenz eines numerischen Werts in PHP (Codebeispiel)

So implementieren Sie eine ganzzahlige Potenz eines numerischen Werts in PHP (Codebeispiel)

不言
Freigeben: 2023-04-04 12:42:02
nach vorne
2941 Leute haben es durchsucht

Der Inhalt dieses Artikels handelt davon, wie PHP die ganzzahlige Kraft numerischer Werte erkennt (Codebeispiele). Ich hoffe, dass dies der Fall ist hilfreich sein.

Gegeben sei eine Gleitkommazahlenbasis vom Typ double und ein ganzzahliger Exponent vom Typ int. Finden Sie die Exponentenpotenz der Basis.

Ideen:

1. Der binäre Ausdruck des Exponenten hoch 10^6 kann 10^110 (binär) 10^100 * 10^10 * 10^000=> darstellen ;10^4 * 10^2
2. Schichtbetrieb

while(n!=0){
    if((n&1)==1)
        res*=curr;
    curr*=curr;// 翻倍
    n>>=1;// 右移一位
}
Nach dem Login kopieren

<?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);
~
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine ganzzahlige Potenz eines numerischen Werts in PHP (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage