折半,計算 x 的 n 次冪函式

2021-09-28 13:31:16 字數 696 閱讀 4172

實現 pow(x, n) ,即計算 x 的 n 次冪函式。

輸入:

2.00000,10

輸出:1024.00000

使用折半計算,每次把n縮小一半,這樣n最終會縮小到0,任何數的0次方都為1,這時候我們再往回乘,如果此時n是偶數,直接把上次遞迴得到的值算個平方返回即可,如果是奇數,則還需要乘上個x的值。還有一點需要引起我們的注意的是n有可能為負數,對於n是負數的情況,我們可以先用其絕對值計算出乙個結果再取其倒數即可。我們讓i初始化為n,然後看i是否是2的倍數,是的話x乘以自己,否則res乘以x,i每次迴圈縮小一半,直到為0停止迴圈。最後看n的正負,如果為負,返回其倒數。

def

mypow

(self, x:

float

, n:

int)

->

float

: res=

1.0;

i=n;

while i!=0:

if i%2!=

0:res*=x;

x*=x;

i一定要強轉為int,python預設不會為int。

i=int(i/2)

;return

1/res if n<

0else res;

計算x的n次冪 演算法比較

計算x的n次冪最簡單直接的方法就是相乘n次,很容易寫出程式 cpp view plain copy 計算x n 直接乘n次 by morewindows intpower1 intx,unsigned intn 這種計算的效率顯然不高,我們可以用二分法來加速計算x n x n 2 x n 2 即x ...

計算x的n次方(用函式)

use mathjax to parse formulas description 問題很簡單,求x n.請編寫pow 函式.宣告如下 int pow int x,int n,int p pow的功能是實現x n,最後 個引數p沒有用。系統會自動在程式的最後加上如下 int main input x...

計算x的n次方

計算x的n次方有遞迴和遞推程式。不論從時間或空間來看,自然遞推優於遞迴。然而,二分法則是極其優的一種方法,用在計算x的n次方完全沒有問題,而且不是遞迴而是遞推的程式。程式中使用條件編譯,以便於統計分析演算法的計算量。正解是函式power3。計算x的n次方程式 1.遞迴程式 2.非遞迴程式 3.二分法...