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;
    }
}
相关推荐
小马爱打代码6 小时前
Spring AI:多模态 AI 大模型
java·人工智能·spring
李贺梖梖6 小时前
day07 方法、面向对象1
java
白狐_7987 小时前
【项目实战】我用一个 HTML 文件写了一个“CET-6 单词斩”
前端·算法·html
Jasmine_llq7 小时前
《P3811 【模板】模意义下的乘法逆元》
数据结构·算法·线性求逆元算法·递推求模逆元
除了代码啥也不会7 小时前
Java基于SSE流式输出实战
java·开发语言·交互
尋有緣7 小时前
力扣2292-连续两年有3个及以上的订单产品
leetcode·oracle·数据库开发
虹科网络安全7 小时前
艾体宝干货 | Redis Java 开发系列#2 数据结构
java·数据结构·redis
Jacob程序员7 小时前
欧几里得距离算法-相似度
开发语言·python·算法
sg_knight7 小时前
SSE 技术实现前后端实时数据同步
java·前端·spring boot·spring·web·sse·数据同步
Slow菜鸟7 小时前
Java项目基础架构(二)| 通用响应与异常
java·开发语言