快速幂的求解方法(位运算)

news2025/1/11 18:45:44

需要求解幂运算的解法,可以将需要运算的内容进行判别,众所周知,幂就是指数,就是将底数乘以自身完成n次自相乘,那么就可以幻化为他的幂的简化计算;

以二进制为例,你要求3^{25},即可以看作是3^{1}\cdot 3^{8}\cdot 3^{16},自习观察可以看作是1+8+16,同样化为2进制,即求25的二进制,可以得出为11001;

这时候如果你的幂是负数,则可以先取反幂,再将底数变为原先的倒数;

 a^{-n}= \left ( \frac{1}{a} \right )^{n}

由此可以整理一个完整的流程

1.先判定幂n是否小于零,小于零跳到步骤2,大于零跳到步骤3,等于零直接返回结果1;

2.幂取反,底数变为原先的倒数;

3.将ans设定为1,底数a变为二进制来看,运用位运算,判定最低位是否为1,(a&1);

4.若最低位为1,则ans=ans*a,若不为1,则a=a*a,底数平方;

5.将底数n位数右移;

完整代码:

class Solution {
public:
    double myPow(double x, int N) {
        double ans=1;
        long long n=N;
        if(n<0){
            n=-n;
            x=1/x;
        }
        while(n){
            if(n&1) ans*=x;
            x*=x;
            n>>=1;
        }
        return ans;
    }
};

参考:. - 力扣(LeetCode)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win10系统通过docker部署pytorch的GPU环境

命名实体有关文章参考这篇文章 中文地址命名实体识别训练和预测 win10系统安装cuda环境参考这篇文章 搭建Pytorch的GPU环境超详细 文件结构 准备环境 (1)、安装cuda环境 (2)、安装docker 1、创建基础镜像,安装pytorch和python dockerfile # 使用适当的基础镜像 FROM…

安全防护软件的必要性:从微软蓝屏事件谈起

最近微软遭遇了的大规模蓝屏事件&#xff0c;让全球很多用户措手不及。这次事件告诉我们&#xff0c;保护我们的电脑和数据&#xff0c;安全防护软件是多么重要。 微软蓝屏事件源于网络安全公司CrowdStrike的技术更新错误&#xff0c;导致全球范围内大量Windows用户系统崩溃&a…

一元二次方程编程求解过程+题目

输入 输入的第一行包含两个正整数 T,M&#xff0c;分别表示方程数和系数的绝对值上限。 接下来 T 行&#xff0c;每行包含三个整数 a,b,c。 输出 输出 T 行&#xff0c;每行包含一个字符串&#xff0c;表示对应询问的答案&#xff0c;格式如题面所述。 每行输出的字符串中…

【netty系列-06】深入理解select、poll和epoll多路复用的区别

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

分布式架构网络通信(RPC,RMI) 03

文章目录 1. 基本原理2. RPC 远程过程调用3. RMI 远程方法调用4. RMI代码实现4. BIO、NIO、AIO4.1 同步和异步4.2 阻塞和非阻塞4.3 BIO4.4 NIO4.5 AIO 1. 基本原理 要实现网络机器间的通讯&#xff0c;首先得来看看计算机系统网络通信的基本原理&#xff0c;在底层层面去看&am…

WSL桥接网络配置

仅做记录与分享&#xff0c;平台版本等不同无法指导更多。 一、需求 ubuntu虚拟机&#xff08;WSL&#xff09;桥接win11并且能联通外网&#xff08;百度之类&#xff09; 二、环境&#xff1a; 版本 Windows 11 专业版 版本号 23H2 安装日期 ‎2024/‎6/‎20 操作系统版本…

Mysql 集群搭建 05

文章目录 1. Mysql主从复制集群搭建1.1 主库配置1.2 从库配置 2. 分库分表2.1 拆分策略2.2 实现技术2.2.1 MyCat概述2.2.2 MyCat入门2.2.3 配置 schema.xml 3. 双主双从4. 双主双从读写分离 1. Mysql主从复制集群搭建 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志…

有什么开放式耳机比较好用?耳机选购指南附赠五款开放式耳机推荐!

现在的耳机市场真的越来越多元了&#xff0c;最近的开放式耳机也是越来越火了&#xff0c;很多小伙伴都在后台开始问我&#xff0c;到底要怎么样才能选到一款比较合适自己的开放式耳机呢&#xff1f;开放式耳机现在这么多品牌&#xff0c;这么多的型号&#xff0c;真的很难选择…

如何评估自动化测试的效益

目录 自动化测试实施成本 自动化前期开发成本包括&#xff1a; 后期维护成本包括&#xff1a; 自动化测试执行次数 自动化测试实施成本比 其中“自动化测试收益”可能包括&#xff1a; “自动化测试成本”包括但不限于&#xff1a; 测试稳定性 可扩展性和可维护性 自动…

java拼接字符串的四种方法StringBuilder、StringBuffer、StringJoiner、String.join(x,x )

1.直接复制以下代码运行查看运行结果 import java.util.ArrayList; import java.util.List; import java.util.StringJoiner;public class Test {public static void main(String[] args) throws Exception {List<String> strs new ArrayList<>();strs.add("…

“等保测评:如何进行有效的安全漏洞管理与网络安全法规遵从“

随着网络环境的复杂性增加&#xff0c;安全漏洞管理成为企业信息安全管理体系中的关键环节。等保测评要求企业具备发现、评估、修复和监控安全漏洞的能力&#xff0c;以保障信息系统的安全稳定运行。本文将围绕“等保测评&#xff1a;如何进行有效的安全漏洞管理”这一主题&…

qrcode生成二维码并下载【带logo图标】【带文字描述】

qrcode官网地址&#xff1a;http://jeromeetienne.github.io/jquery-qrcode/ 结果图&#xff1a; 不带文字 带文字 遇到问题&#xff1a; 1、中文乱码&#xff1a;需要先将中文字体转码。 2、qrcode.js生成的二维码是没有白边的&#xff0c;需要重新绘制边框logo文字 3、将生成…

IoTDB 入门教程 实战篇④——C#示例(开源)

文章目录 一、前文二、新建C#项目三、NuGet安装四、示例源码五、查询数据六、参考 一、前文 IoTDB入门教程——导读 本文详细阐述了如何通过一个C#项目成功连接到IoTDB时序数据库&#xff0c;进而展示了如何向该数据库高效地写入数据以及执行精确的数据查询操作。 此示例旨在为…

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20‘ 报错解决办法

1.查找 libstdc.so.6* find / -name libstdc.so.6*2.copy一个libstdc.so.6.0.19到/usr/lib64/下 cp /usr/lib64/libstdc.so.6 /usr/lib64/3.创建软连接 ln -sf /usr/lib64/libstdc.so.6.0.31 /usr/lib64/libstdc.so.6完毕&#xff01;

RISC-V (四)内存管理

本章目的&#xff1a; 对内存进一步的管理&#xff0c;实现动态的分配和释放。 实现page级别的内存分配和释放。 内存管理分类 -自动管理内存-栈&#xff08;stack&#xff09; -静态内存-全局变量/静态变量。放在数据段里面。 -动态管理内存-堆&#xff08;heap&#xff09;…

【Docker】LXC 容器操作实战

一、实战目的 通过 lxc 来完成容器的创建&#xff0c;体会容器并了解 docker 并不是容器的唯一实现。 自 docker 0.9 版本起&#xff0c;docker 除了继续支持 LXC 外&#xff0c;还开始引入自家的 libcontainer&#xff0c;试图打造更通用的底层容器虚拟化库。如今的 docker…

【EI稳定检索】第二届能源与化学工程国际会议(EACE 2024)

第二届能源与化学工程国际会议 2024 International Conference on Energy and Chemical Engineering 【1】会议简介 第二届能源与化学工程国际会议是一个旨在促进能源科学与化学工程领域学术交流与合作的重要平台。会议汇集了全球范围内的专家学者、研究人员及行业代表&#xf…

77.SAP ME - 数据库架构

目录 1.SAP ME的数据库 2.SAPMEINT的数据库 3.SAPMII的数据库 4.基于MSSQLSERVER或ORACLE的架构 5.基于HANA的架构 - 无ODS 1.SAP ME的数据库 WIP&#xff1a;在实时事务期间&#xff0c;SAP ME 在“在制品” (WIP) 数据库表中存储数据。ODS&#xff1a;可操作数据存储 (…

树莓派笔记22_小车:小车电机开环运动与opencv摄像头巡线

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: ​ Opencv 版本是4.5.1&#xff1a; ​ Python 版本3.7.3&#xff1a; 今日尝试搭建一台小…

车车科技合纵连横:股价今年以来跌超八成,公司看好未来市场份额

《港湾商业观察》黄懿 6月27日&#xff0c;Cheche Group Inc. (NASDAQ: CCG&#xff0c;下称“车车科技”)宣布&#xff0c;公司已与北京安鹏保险经纪有限公司&#xff08;“北京安鹏”&#xff09;建立战略合作伙伴关系。其中&#xff0c;北京安鹏是北京汽车集团有限公司&…