題目描述
給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。
解題思路:
1,在計算之前先要檢測base和n 的數值是否合法,如base為0或者n<0的情況
base為0時由於double型別原因,不能直接用等於(==)來判斷
2,計算base的exponent次方,當n為負數時先n轉換為正數,再計算base的exponent次方,
3, 輸出時再對n進行判斷,若n為負數,則輸出結果為正數情況下的結果的倒數
class solution
return n > 0 ? result:1.0/result;
}};
以上方法是直接算的情況,計算次數為n的次數,時間複雜度為o(n);我們發現:
當n為偶數時 base^n = base^(n/2) * base^(n/2)
當n為偶數時 base^n = base^(n/2) * base^(n/2) *base
於是我們可以先求出power(base,n/2)的情況,在根據n是偶數還是奇數再做一次運算;
這樣我們可以將時間複雜度縮小到o(logn);
另外,我們用n右移一位代替除以2,用exponent與十六1作與運算來判斷n是否為奇數,因為二進位制的右移和與運算都比求餘運算(%)要快
class solution
};
數值整數次方
題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮 大數問題。includebool equal double num1,double num2 double powerwithunsignede...
數值整數次方
題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮 大數問題。includebool equal double num1,double num2 double powerwithunsignede...
數值的整數次方
題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大樹問題。這道題目有以下幾點需要注意 0的0次方是無意義的,非法輸入 0的負數次方相當於0作為除數,也是無意義的,非法輸入 base如果非0,如果...