题目描述
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。
示例 1:
输入:x = 2.00000, n = 10
输出:1024.00000
示例 2:
输入:x = 2.10000, n = 3
输出:9.26100
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/powx-n
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
C++
class Solution {
/*
考虑x和n的符号
使用折半计算,每次把n缩小一半,这样n最终会缩小到0,任何数的0次方都为1,;
n有可能为负数,对于n是负数的情况,我们可以先用其绝对值计算出一个结果再取其倒数即可。
i初始化为n,然后看i是否是偶数,是的话x乘以自己,
否则res乘以x,i每次循环缩小一半,直到为0停止循环。
不好理解,举例: x=3;n=9; 9是奇数, 3^9=3^8*3; 3^8=(3^2)^4
*/
public:
double myPow(double x, int n) {
double res=1.0;
for(int i=n;i!=0;i/=2){
if(i%2!=0){
res*=x;
}
x*=x;
}
return n<0 ? 1/res :res;
}
};
该博客介绍了如何使用C++实现LeetCode上的 Pow(x, n) 题目,通过二分查找优化算法,高效计算x的n次幂。文章包含具体示例和代码实现。"
134564773,5632965,华为OD机考:构成指定长度字符串的解题方法,"['华为od', '编程语言', '算法', '递归', '字符串处理']
591

被折叠的 条评论
为什么被折叠?



