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;
    }
}
相关推荐
异常驯兽师11 小时前
Spring 中处理 HTTP 请求参数注解全解析
java·spring·http
Yingjun Mo11 小时前
1. 统计推断-基于神经网络与Langevin扩散的自适应潜变量建模与优化
人工智能·神经网络·算法·机器学习·概率论
连合机器人11 小时前
晨曦中的守望者:当科技为景区赋予温度
java·前端·科技
AD钙奶-lalala11 小时前
idea新建的项目new 没有java class选项
java·ide·intellij-idea
sheji341611 小时前
【开题答辩全过程】以 12306候补购票服务系统为例,包含答辩的问题和答案
java·eclipse
地平线开发者12 小时前
征程 6 | 灰度图部署链路介绍
算法·自动驾驶
地平线开发者12 小时前
手撕大模型|KVCache 原理及代码解析
算法·自动驾驶
hzzzzzo012 小时前
微服务网关全解析:从入门到实践
java·开发语言·微服务
纪莫12 小时前
技术面:Spring (bean的生命周期、创建方式、注入方式、作用域)
java·spring·java面试⑧股
We....12 小时前
Java多线程分块下载文件
java·开发语言