题目描述
实现函数double Power(double base, int exponent),求base的 exponent次方。
不得使用库函数,同时不需要考虑大数问题。
注意:
- 不会出现底数和指数同为0的情况
样例1
输入:10 ,2
输出:100
样例2
输入:10 ,-2
输出:0.01
算法1
(别的题解) $O(n)$
见别的题解
时间复杂度 $O(n)$
参考文献 无
C++ 代码
class Solution {
public:
double Power(double base, int exponent) {
int minus=1;
if(exponent<0){
minus=-1;
exponent=-exponent;
}
double res=1;
while(exponent--)res*=base;
if(minus==-1)res=1/res;
return res;
}
};
C 代码
double Power(double base, int exponent)
{
int minus=1;
if(exponent<0){
minus=-1;
exponent=-exponent;
}
double res=1;
while(exponent--)res*=base;
if(minus==-1)res=1/res;
return res;
}
Java 代码
class Solution {
public double Power(double base, int exponent) {
int minus=1;
if(exponent<0){
minus=-1;
exponent=-exponent;
}
double res=1;
while(exponent-->0)res*=base;
if(minus==-1)res=1/res;
return res;
}
}
Python 代码
class Solution(object):
def Power(self, base, exponent):
"""
:type base: float
:type exponent: int
:rtype: float
"""
minus=1
if exponent<0:
minus=-1
exponent=-exponent
res=1.0
while exponent!=0:
exponent-=1
res*=base
if minus==-1:
res=1/res
return res
Javascript 代码
/**
* @param {number} base
* @param {number} exponent
* @return {number}
*/
var Power = function(base, exponent) {
var minus=1;
if(exponent<0){
minus=-1;
exponent=-exponent;
}
var res=1;
while(exponent--)res*=base;
if(minus==-1)res=1/res;
return res;
};
Python3 代码
class Solution(object):
def Power(self, base, exponent):
"""
:type base: float
:type exponent: int
:rtype: float
"""
minus=1
if exponent<0:
minus=-1
exponent=-exponent
res=1
while exponent!=0:
exponent-=1
res*=base
if minus==-1:
res=1/res
return res
Go 代码
func Power(base float64, exponent int) float64 {
minus:=1
if exponent<0{
minus=-1
exponent=-exponent
}
res:=1.0
for exponent!=0{
exponent--
res*=base
}
if minus==-1{
res=1/res
}
return res
}