LCR 134. Pow(x, n)

解题思路:

分治 快速幂

Java中向下取整n/=2即可

需要结合下图理解,算法就是实现的该过程

java 复制代码
class Solution {
    public double myPow(double x, int n) {
        if(x == 0.0f) return 0.0d;
        long b = n;
        double res = 1.0;
        //例如:2^-5=(1/2)^5
        if(b < 0) {
            x = 1 / x;
            b = -b;
        }
        //分奇偶讨论,为奇数时要多乘一次x
        while(b > 0) {
            //&与运算,例如:5&1=(101&001)=001=1
            if((b & 1) == 1) res *= x;
            //x=x^2
            x *= x;
            //指数地板除2(b/=2也可以)
            b >>= 1;
        }
        return res;
    }
}
相关推荐
元气满满-樱几秒前
Tomcat理论
java·tomcat
黄金小码农4 分钟前
工具坐标系
算法
一只叫煤球的猫4 分钟前
从夯到拉,锐评13个Java Web框架
java·后端·程序员
小南家的青蛙11 分钟前
LeetCode第1261题 - 在受污染的二叉树中查找元素
算法·leetcode·职场和发展
heartbeat..11 分钟前
JUC 在实际业务场景的落地实践
java·开发语言·网络·集合·并发
tryxr12 分钟前
线程安全的类 ≠ 线程安全的程序
java·开发语言·vector·线程安全
君义_noip13 分钟前
信息学奥赛一本通 1453:移动玩具 | 洛谷 P4289 [HAOI2008] 移动玩具
c++·算法·信息学奥赛·csp-s
玖剹21 分钟前
记忆化搜索题目(二)
c语言·c++·算法·leetcode·深度优先·剪枝·深度优先遍历
rchmin22 分钟前
Java内存模型(JMM)详解
java·开发语言
Wpa.wk29 分钟前
Tomcat的安装与部署使用 - 说明版
java·开发语言·经验分享·笔记·tomcat