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;
    }
}
相关推荐
随便叫个啥呢4 分钟前
java使用poi-tl模版+vform自定义表单生成word,使用LibreOffice导出为pdf,批量下载为压缩文件
java·pdf·word·zip
CodeCraft Studio4 分钟前
国产化Word处理控件Spire.Doc教程:使用Java将RTF文件转换为PDF的全面教程
java·pdf·word·spire.doc·rtf转pdf·文件格式转换·文档开发sdk
随便叫个啥呢6 分钟前
java使用poi-tl模版+vform自定义表单生成word
java·word·poi-tl
开心星人25 分钟前
Leetcode hot100 Java刷题(二)
java·算法·leetcode
喵手25 分钟前
Java与Microservices架构的结合:构建可扩展、高可用的系统!
java·架构·华为云
hn小菜鸡35 分钟前
LeetCode 153.寻找旋转排序数组中的最小值
数据结构·算法·leetcode
半部论语35 分钟前
MyBatis-Plus 通用 CRUD 实现原理技术文档
java·spring boot·mybatis
手握风云-38 分钟前
JavaEE 进阶第六期:Spring Boot 如何重塑后端开发
java·spring boot·java-ee
Deamon Tree1 小时前
【设计题】如何实现一个线程安全的缓存?
java·spring boot·spring
毕设源码-钟学长1 小时前
【开题答辩全过程】以 基于Java的相机专卖网的设计与实现为例,包含答辩的问题和答案
java·开发语言