劍指offer之數值的整數次方

2021-07-26 22:02:08 字數 801 閱讀 8927

1.考慮到輸入的指數是零或負數的情況。

2.當底數是零,指數是負數時,做特殊處理。三種出錯處理方式:返回值,全域性**,異常

3.0的0次方

4.在判斷底數是否為零時,由於計算機內表示小數時都有誤差,如果兩個數相差很小就可以認為這兩個數相等。

public static boolean invalidinput = false;

public static double power(double base,int exponent)

double p1 = powerwithexponent(base,math.abs(exponent));

if(exponent<0)else

}public static double powerwithexponent(double n1,int n2)

return m;

}public static boolean equal(double num1,double num2)else}

更高效的方法,遞迴

用右移運算子代替除二,用位與運算子代替取餘。

位運算的效率比乘除及取餘效率要高很多。

//遞迴方法

public static double newpower(double base,int exponent)

if(exponent==1)

double result = newpower(base, exponent >> 1);

result*=result;

if((exponent&0x1)==1)

return result;}

劍指Offer之數值的整數次方

題目描述 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。輸入 輸入可能包含多個測試樣例。對於每個輸入檔案,第一行輸入乙個整數t,表示測試案例的數目,接下來的t行每行輸入乙個浮點數base和乙個整數exponent,兩個數中間用乙個空格隔...

劍指offer之 數值的整數次方

問題描述 實現函式double power double base,int exponent 求base的exponent次方。不能使用庫函式,同時不需要考慮大數問題。package problem11 public class power if exponet 0 if exponet 0 els...

劍指offer 數值的整數次方

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