本文共 697 字,大约阅读时间需要 2 分钟。
题目描述
实现 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; }};