劍指offer 數值的整數次方

2022-03-13 05:07:34 字數 668 閱讀 9340

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。 保證base和exponent不同時為0

分析:採用快速冪

以求2的5次方為例,5的2進製為101,第乙個1的權值是4,第二個1的權值是1,所以2的5次方可以表示為2^4*2^1,這樣以來本來時間複雜度是o(n),現在時間複雜度變成了o(log n)

又以3的13次方為例,13的二進位制為1101,第乙個1權值是8,第二個1權值是4,第三個1權值是1,所以3的13次方可以表示為

3^8*3^4*3^1

#include #include 

#include

using

namespace

std;

class

solution

double s=1.0,x=n;

while

(m)

x*=x;

m>>=1;//

捨去m的最後一位

}

if(flag==1

)

return

1.0/s;

return

s; }

};

劍指offer 數值的整數次方

1 題目描述 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。2 思路 需要考慮到的情況 1 指數為負數的時候,可以先對指數求絕對值,算出次方之後的結果再取倒數。2 當底數是0,指數是負數的時候,可以將無效變數設定為true,並返回0。3...

劍指offer 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。將指數大於0,小於0,等於0 底數不為0 的情況分開。其實指數為0的情況不必單獨拎出來 不進入if直接返回result為1.0 真正需要考慮的是,底數為0而指數為負的情況,數學上沒有意義。書...

劍指offer 數值的整數次方

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。1.最直觀的方法,遞迴求解a b a a b 1 當然也可以用迴圈實現。要注意特殊情況,指數為0時乘方結果都是1 指數為負數時的計算,可以先轉化為正數再求倒數,但是底數為0時不能求導。2.效...