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;
    }
}
相关推荐
PD我是你的真爱粉4 分钟前
Redis基础与数据结构
数据结构·数据库·redis
llz_1127 分钟前
蓝桥杯备赛-搜索(DFS/BFS)
c++·算法·蓝桥杯·深度优先·宽度优先
康小庄11 分钟前
Java读写锁降级
java·开发语言·spring boot·python·spring·java-ee
流云细水12 分钟前
Spec(规格说明书)与Skill(技能库)实操指南
java·人工智能
山顶夕景12 分钟前
【Math】数学知识点串联
人工智能·数学·算法·机器学习
毕设源码-钟学长14 分钟前
【开题答辩全过程】以 基于Java的停车场信息管理系统设计与实现为例,包含答辩的问题和答案
java·开发语言
rannn_11115 分钟前
【苍穹外卖|Day7】缓存菜品、缓存套餐、添加购物车、查看购物车、清空购物车
java·spring boot·redis·后端·缓存·项目
晔子yy15 分钟前
带你了解Java中的Mono接口
java·数据库·oracle
Hag_2019 分钟前
LeetCode Hot100 42.接雨水
算法·leetcode·职场和发展