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;
    }
}
相关推荐
從南走到北10 分钟前
JAVA国际版任务悬赏发布接单系统源码支持IOS+Android+H5
android·java·ios·微信·微信小程序·小程序
yuuki23323318 分钟前
【数据结构】顺序表+回调函数
c语言·数据结构·后端
大数据张老师20 分钟前
数据结构——堆排序
数据结构·算法·排序算法
4Forsee29 分钟前
【Android】View 事件分发机制与源码解析
android·java·前端
画个逗号给明天"33 分钟前
C++十大排序算法
数据结构·c++·排序算法
仰泳的熊猫38 分钟前
LeetCode:268. 丢失的数字
数据结构·c++·算法·leetcode
VT.馒头38 分钟前
【力扣】2725. 间隔取消
javascript·leetcode·1024程序员节
刘一说41 分钟前
Spring Boot 主程序入口与启动流程深度解析:从 `@SpringBootApplication` 到应用就绪
java·spring boot·后端
小龙报1 小时前
《算法通关指南数据结构和算法篇(3)--- 栈和stack》
开发语言·数据结构·c++·算法·创业创新·学习方法·visual studio
eguid_11 小时前
【从零开始开发远程桌面连接控制工具】01-项目概述与架构设计
java·远程连接·远程控制·远程桌面·vnc·teamviewer