Leetcode——数值的整数次方
Posted Yawn,
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode——数值的整数次方相关的知识,希望对你有一定的参考价值。
1.题目
2. 题解
(1)暴力
- 分为整数次方和负数次方两种情况
- 然后果然超时了
class Solution {
public double myPow(double x, int n) {
double temp = 1.0;
long b = n;
while(b!=0.0){
if(b>0.0){ //正数次方
b--;
temp = temp*x;
}else{ //负数次方
b++;
temp = temp / x ;
}
}
return temp;
}
}
(2)快速幂
class Solution {
public double myPow(double x, int n) {
if(x == 0.0f)
return 0.0d;
long b = n;
double res = 1.0;
if(b < 0) {
x = 1 / x;
b = -b;
}
while(b > 0) {
if((b & 1) == 1) //取余数 n % 2 等价于 判断二进制最右位n & 1
res *= x;
x *= x;
b >>= 1; // b = b / 2
}
return res;
}
}
以上是关于Leetcode——数值的整数次方的主要内容,如果未能解决你的问题,请参考以下文章
菜鸟系列 Golang 实战 Leetcode —— 面试题16. 数值的整数次方