Pow(x, n)
问题简介:实现函数Pow(x, n),即计算底数为x,幂数为n的结果
注:
1.-100.0 < x < 100.0
2.n是一个32位有符号的整数,取值范围是[−231, 231 − 1]
3.要求时间复杂度在log(n)以内
举例:
1:
输入: 2.00000, 10
输出: 1024.00000
2:
输入: 2.10000, 3
输出: 9.26100
3:
输入: 2.00000, -2
输出: 0.25000
解法一:
将幂数进行折半处理,例如2的十次方,第一次是22,第二次就是44,当幂数为负数时返回结果的倒数
class Solution {
public double myPow(double x, int n) {
double result = 1;
if(x == 0)return 0;
if(n == 0)return 1;
for(int i = n;i != 0;i = i / 2){
if(i % 2 != 0)result *= x;
x *= x;
}
return (n > 0) ? result : (1 / result);
}
}
小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海