没有输出的输入是不完整的

0%

剑指offer-数值的整数次方

本文为剑指 offer 系列第十四篇。
细心一点,搞清楚正负逻辑,这个题目就是非常简单的送分题。

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0

解题思路

思路1

直接使用库函数pow()来进行计算乘方操作。

思路2

对exponent进行分情况讨论:大于0,小于0,等于0。
然后要注意最终结果的正负判断。

解题代码

思路1代码

1
2
3
4
5
6
class Solution {
public:
double Power(double base, int exponent) {
return pow(base,exponent);
}
};

时间复杂度为O(n),空间复杂度为O(1)

思路2代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
double Power(double base, int exponent) {
double res = 1;
if(exponent == 0){
return 1;
}else if(exponent>0){
while(exponent >0){
res *= base;
exponent--;
}
}else{
while(exponent <0){
res *= (1/base);
exponent++;
}
}
if(base < 0 && exponent%2 == 1) res *= -1;
return res;
}
};

时间复杂度为O(n),空间复杂度为O(1)
以上,本题结束!