劍指offer 數值的整數次方

2021-08-15 06:55:06 字數 1258 閱讀 3800



1、題目描述

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。

2、思路

需要考慮到的情況:

(1)指數為負數的時候,可以先對指數求絕對值, 算出次方之後的結果再取倒數。

(2)當底數是0,指數是負數的時候,可以將無效變數設定為true,並返回0。

(3)當底數和指數都為0時,因為0的0次方在在數學上是沒有意義的,直接返回1。

**如下:

public class solution

return result;

}/**

主函式*/

public double power(double base, int exponent)

int ab***ponent = exponent;

if(exponent < 0)

double result = powerwithexponent(base,ab***ponent);

if(exponent < 0)

return result;

}public static void main(string args)

}3、更高效的解法,即對powerwithexponent函式進行改進,**如下。

public class solution

if(exponent == 1)

double result = powerwithexponent(base,exponent>>1);//遞迴呼叫,32次方等於16的平方

result *= result;//將結果平方

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

return result;

}/**

主函式*/

public double power(double base, int exponent)

int ab***ponent = exponent;

if(exponent < 0)

double result = powerwithexponent(base,ab***ponent);

if(exponent < 0)

return result;

}public static void main(string args)

}完全是自己寫的**:

public class solution

if(exponent < 0)

return 0;}}

劍指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.效...

劍指offer 數值的整數次方

題目描述 實現函式double power double base,int exponent 求base的exponent次方,不得使用庫函式,同時不需要考慮大數問題。進行浮點數判斷是不是等於0 bool equal double num1,double num2 return false doub...