leetcode 50. Pow(x, n)(快速幂)
就是一个二分法快速幂。
但是需要注意的问题是这里是实数,而且n可能为负。
int的范围是-2,147,483,648 至 2,147,483,647。如果为-2,147,483,648那么直接n=-n就爆int了。所以先要把n换成longlong。
class Solution {
public:
    double myPow(double x, int n) {
        double ans = ;
        unsigned long long p;
        if (n < ) {
            p = -n;
            x =  / x;
        } else {
            p = n;
        }
        while (p) {
            if (p & )
                ans *= x;
            x *= x;
            p >>= ;
        }
        return ans;
    }
};
leetcode 50. Pow(x, n)(快速幂)的更多相关文章
- LeetCode 50 - Pow(x, n) - [快速幂]
		
实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10输出: 1024.00000 示例 2: 输入: 2.10000, 3输出: 9.26100 示例 ...
 - [leetcode]50. Pow(x, n)求幂
		
Implement pow(x, n), which calculates x raised to the power n (xn). Example 1: Input: 2.00000, 10 Ou ...
 - LeetCode Pow(x, n) (快速幂)
		
题意 Implement pow(x, n). 求X的N次方. 解法 用正常的办法来做是会超时的,因为可能有21亿次方的情况,所以需要优化一下.这里用到了快速幂算法,简单来说就是将指数分解成二进制的形 ...
 - LeetCode - 50. Pow(x, n)
		
50. Pow(x, n) Problem's Link ----------------------------------------------------------------------- ...
 - Leetcode 50.Pow(x,n) By Python
		
实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 ...
 - LeetCode 50. Pow(x, n) 12
		
50. Pow(x, n) 题目描述 实现 pow(x, n),即计算 x 的 n 次幂函数. 每日一算法2019/5/15Day 12LeetCode50. Pow(x, n) 示例 1: 输入: ...
 - leetcode 50. Pow(x, n) 、372. Super Pow
		
50. Pow(x, n) 372. Super Pow https://www.cnblogs.com/grandyang/p/5651982.html https://www.jianshu.co ...
 - Java实现 LeetCode 50 Pow(x,n)
		
50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, ...
 - LeetCode 50 Pow(x, n) (实现幂运算)
		
题目链接:https://leetcode.com/problems/powx-n/?tab=Description Problem:实现幂运算即 pow(x,n) 设形式为pow(x,n) ...
 
随机推荐
- 程序包 javax.servlet 不存在 解决办法
			
其原因是java编译器没有找到软件包javax.servlet. 下载servlet.jar放到lib下没有效果,后发现需要在jdk中添加,如下: 解决办法: 从tomcat lib目录下拷贝一个se ...
 - CentOS 6.4 yum安装LAMP环境
			
一.制作连外网的yum源文件 1. centOS安装完成时是默认存在的,不需要做任何操作,可以直接使用yum 命令进行操作, 默认是在 /etc/yum.repos.d/目录下的 2. 如果你因为制 ...
 - ASP.NET动态网站制作(19)-- C#(2)
			
前言:C#的第二次课,依旧讲解C#的基础知识. 内容: 1.GC:垃圾回收机制,可以回收托管模块中的垃圾. 2.值类型和引用类型: (1)值类型:所有的数值类型都是值类型,如int,byte,sho ...
 - ASP.NET动态网站制作(14)-- CSS3
			
前言:这节课主要讲解CSS之前没有讲到过的知识点以及CSS3的一些内容. 内容: 1.内容参考博文:http://www.cnblogs.com/ruanmou/p/4832214.html. 后记: ...
 - Java多态案例分析
			
一.多态的定义 同一事物,在不同时刻体现出不同状态. 例如:水在不同状态可能是:气态.液态.固态. 二.多态前提和体现 1.有继承关系 2.有方法重写 3.有父类引用指向子类对象 三.编译运行原理 1 ...
 - 安装Hadoop 1.1.2 (一 安装JDK)
			
1 下载jdk1.7 xxx .rpm 2 以Root权限登陆 3 修改文件权限 chmod +x jdk-7u25-linux-x64.rpm 4 安装 JDK rpm -ivh jdk-7u2 ...
 - 记录-spring MultipartFile  文件上传
			
注意:以下上传和下载方法未必完全正确,不同浏览器效果不同,建议不要使用IE /** * 简单的文件上传 * @author:qiuchen * @createTime:2012-6-19 * @par ...
 - python基础9 -----python内置函数2
			
一.python内置所以函数 Built-in Functions abs() divmod() input() open() staticmethod() all() enumera ...
 - 改善程序与设计的55个具体做法 day9
			
条款23:宁以non-member.non-friend替换member函数 即 以非成员函数 非友元函数 替换成员函数. 直观上,面向对象应该尽可能的封装,封装数据.封装操作等等,所以这个条款可能有 ...
 - 关于scrollLeft的获取在不同浏览器或相同浏览器的不同版本下的获取
			
chrome61向w3c规则靠拢,document.body.scrollLeft获取的值一直为0,需要使用document.documentElement.scrollLeft(或document. ...