劍指offer(十二)數值的整數次方

題目描述
給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。

保證base和exponent不同時爲0

思路如下:
首先這個需要考慮幾種情況
1、兩者同時爲0,即0的0次方,若都爲0則不用算了,退出程序即可
2、當base = 1,那麼無論exponent爲多少,結果都爲1
3、當exponent爲1,那麼無論base爲多少,結果都爲base
4、當exponent爲正數的時候,直接求乘積即可
5、當exponent爲負數的時候,取絕對值後求乘積,再求倒數即可

class Solution {
public:
    double Power(double base, int exponent) {
        
        double result = 1.0;
        if(base == 0 && exponent == 0)
            return 0;
        if(base == 1 || exponent == 0) return 1;
        if(exponent == 1) return base;
       
        
        if(exponent > 0){
        for(int i = 1 ; i <= exponent ; i++)
            result *= base;
        return result;
        }
        
        if(exponent < 0)
        {
            //指數爲負數,則先求絕對值次方再取倒數
            int m = (-1) * exponent;
            for(int i = 1 ; i <= m ; i++)
            result *= base;
            return 1 / result;         
        }
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章