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;
    }
}
相关推荐
59803541514 分钟前
【java工具类】小数、整数转中文大写
android·java·开发语言
JIngJaneIL21 分钟前
基于java + vue个人博客系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
某林21230 分钟前
基于SLAM Toolbox的移动机器人激光建图算法原理与工程实现
stm32·嵌入式硬件·算法·slam
吃喝不愁霸王餐APP开发者32 分钟前
Java后端服务在对接全国性霸王餐API时的多数据中心部署与就近调用策略
java·开发语言
从心归零40 分钟前
springboot-jpa的批量更新方法
java·spring boot·spring
修炼地1 小时前
代码随想录算法训练营第四十三天 | 图论理论基础、深搜理论基础、卡码网98. 所有可达路径、797. 所有可能的路径、广搜理论基础
算法·深度优先·图论
iAkuya1 小时前
(leetcode)力扣100 23反转链表(迭代||递归)
算法·leetcode·链表
这周也會开心1 小时前
128陷阱,==与equals区别
java·开发语言
剪一朵云爱着1 小时前
PAT 1095 Cars on Campus
算法·pat考试
TAEHENGV2 小时前
回收站模块 Cordova 与 OpenHarmony 混合开发实战
android·java·harmonyos