題目描述
給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。
保證base和exponent不同時為0
解題思路
首先一個數的任意次方,這個數有可能是負數和正數和零,然后次方也有可能是負數和正數和零
- 當這個數是零時,0的任何次方就是0。
- 當這個數是正數時,分情況
- 次方為零,此時答案為1
- 次方為負數,算出來的結果要用1除以。
- 次方為正數,則正常給出
- 當這個數為負數時,跟正數一樣
所以程序先判斷這個數是不是零,是零直接返回,再判斷次方是不是為1,如果為1返回1。如果次方為負數,不需要單獨算,只需要把次方取反算次方正數為正數的情況,最后再用1除以就好,如果為正數,res保存當前冪的值。當次方不為零時,res=res*base
;–次方;
代碼實現
class Solution {
public:double Power(double base, int exponent) {if(base == 0)return 0;if(exponent == 0)return 1;bool flag = true;double res = 1;if(exponent <0 ){exponent = -exponent;flag = false;}while(exponent!=0){res = base*res;exponent--;}if(flag == false)res =1/res;return res;}
};