leetcoder-50-Pow(x, n)

原创 2015年07月09日 16:46:30

                                             Pow(x, n)

 可以直接用库函数pow(x,n)一步搞定,但明显这样就没意思了。

  参考   快 速 幂 取 模


二分,复杂度为O(logn)

递归方法

class Solution {
public:
    double myPow(double x, int n) {
        if(n<0) return 1.0/myPow_1(x,-n);
        else return myPow_1(x,n);
    }
    double myPow_1(double x,int n)
    {
        if(n==0) return 1.0;
        double y=myPow_1(x,n/2); // 不能用n>>1 T_T   不知道什么原因
        if(n&1) return y*y*x;
        else return y*y;
    }
};



位运算

class Solution {
public:
    double myPow(double x, int n) {
        if(n<0){
            n=-n;
            x=1.0/x;
        }
        
        double ans=1;
        while(n){
            if(n&1) ans=ans*x;
            x=x*x;
            n=n/2;
        }
        return ans;
    }
};


 
版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode 第 50 题 (Pow(x, n))

LeetCode 第 50 题 (Pow(x, n)) Implement pow(x, n). 这个题目非常简短,求 xnx^n。其中nn 为整数。 最简单的想法就是用一个循环,将 xx 自乘...

【LeetCode】50. Pow(x, n)

【LeetCode】50. Pow(x, n)

DAY21:leetcode #50 Pow(x, n)

Implement pow(x, n). Subscribe to see which companies asked this question class Solution(object):...

[LeetCode-50] Pow(x, n)(数值的整数次方)

Implement pow(x, n). Subscribe to see which companies asked this question 【方法一】: 1)最直观容易想到的方法就是用递...

50. Pow(x, n)

pow(x , n)

LeetCode50——Pow(x,n)

LeetCode50——Pow(x,n) 题意: 实现 math.h里面的pow函数。 好代码如下: class Solution { public: double myPow(double x, ...

LeetCode 50. Pow(x, n)

1. 题目描述 Implement pow(x, n). 2. 解题思路主要就是需要考虑几类情况, 底数为 -1, 1, 指数为 0, 正数, 负数; 而对于正常的指数为正的情况: 我们可以考...

leetcode || 50、Pow(x, n)

problem: Implement pow(x, n). Hide Tags  Math Binary Search 题意:求x的n次幂 ...

leetcode-50 Pow(x, n) 剑指Offer题11 数值的整数次方

问题描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。Pow(X,n) 问题分析: 问题首先要考虑输入值的合法性,0的0次方可以返回...

[leetcode] #50 Pow(x,n)

1.题目Implement pow(x, n).也就是要求实现幂的计算。2.蛮力法首先想到的当然是蛮力法,直接乘它个n次:double myPow(double x, int n) { for...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcoder-50-Pow(x, n)
举报原因:
原因补充:

(最多只允许输入30个字)