剣指offer数値の整数次方Python and C++

1461 ワード

タイトルの説明
doubleタイプの浮動小数点数baseとintタイプの整数exponentを指定します.baseのexponent次数を求めます.
ベースとexponentが同時に0でないことを保証します.
構想
考えもいらないかもしれないが,やればすぐ終わる.
問題の起こり得る問題を解く
注意戻り値は、baseとexponentがそれぞれ0に等しい場合を考慮します.
python
# -*- coding:utf-8 -*-
class Solution:
    def Power(self, base, exponent):
        # write code here
        if base == 0:
            return 0
        if exponent == 0:
            return 1
        temp = 1
        if exponent<0:
            abs_exponent = -exponent
            while abs_exponent:
                temp *= base
                abs_exponent -= 1
            return 1/temp
        else:
            while exponent:
                temp *= base
                exponent -= 1
            return temp

C++
class Solution {
public:
    double Power(double base, int exponent) {
        float res=1;
        if(base==0 & exponent<=0)
            return 0;
        if(exponent<0)
        {
            res = 1;
            for(int i=1;i<=-exponent;i++)
                res *= base; 
                res=1/res;
            //res= pow(base,exponent); // pow,c++      
            // res=1/res;
            return res;
        }
        if(exponent>=0)
        {
            res = 1;
            //for(int i=1;i<=exponent;i++)
              //  res *= base;
            res= pow(base,exponent); // pow,c++      
            return res;
        }
    }
};