Simulation

题目描述[原题链接][https://www.acwing.com/problem/content/description/26/]

实现函数double Power(double base, int exponent),求baseexponent次方。

不得使用库函数,同时不需要考虑大数问题。

注意:

  • 不会出现底数和指数同为0的情况

样例1

1
2
3
输入:10 ,2

输出:100

样例2

1
2
3
输入:10 ,-2  

输出:0.01

算法描述

模拟乘方即可,当为负值的时候判断特殊处理即可;

C++代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
double Power(double base, int exponent) {
if(exponent<0){
base = 1/base;
exponent = -exponent;
}
double sum = 1;
while(exponent--){
sum*= base;
}
return sum;
}
};

Java代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public double Power(double base, int exponent) {
if(base==0)return 0;
double ans=1;
if(exponent<0){
base=1/base;
exponent=-exponent;
}
while(exponent>0){
ans*=base;
exponent--;
}
return ans;
}
}