代码拉取完成,页面将自动刷新
package code;
/*
* 50. Pow(x, n)
* 题意:幂运算
* 难度:Medium
* 分类:Math, Binary Search
* 思路:和lc29的思路类似,数值上的二分。用前一步的结果进行下一步的运算,降低了迭代次数
* Tips:注意溢出的情况,负数的情况。
*/
public class lc50 {
public double myPow(double x, int n) {
if(n == 0) return 1;
if(n==Integer.MIN_VALUE && x!=1 && x!=-1) return 0; //负数最小值,结果溢出
if(n<0){
n = -n;
x = 1/x; //负数变成 1/x
}
return (n%2 == 0) ? myPow(x*x, n/2) : x*myPow(x*x, n/2);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。