当前位置: 首页 > news >正文

Leetcode 50. Pow ( x , n ) 快速幂、取模 C++实现

问题:Leetcode 50. Pow ( x , n )

        实现 pow(x, n) ,即计算 x 的整数 n 次幂函数。

算法:

具体实现流程如下:

代码:

class Solution {
public:double myPow(double x, int N) {double ans = 1;long long n = N;if (n < 0) { // x^-n = (1/x)^nn = -n;x = 1 / x;}while (n) { // 从低到高枚举 n 的每个比特位if (n & 1) { // 这个比特位是 1ans *= x; // 把 x 乘到 ans 中}x *= x; // x 自身平方n >>= 1; // 继续枚举下一个比特位}return ans;}
};

取模

         某些题目,由于要计算的答案非常大(超出 64 位整数的范围),会要求把答案对 10⁹ + 7 取模。如果没有处理得当的话,会 WA(错误)或者 TLE(超时)。

        例如计算一堆数字的乘积,如果没有及时取模,乘法会溢出(例如计算结果超出 C++ 中 long long 的最大值),从而得到和预期不符的答案。

        代码实现时,上面的加减乘除通常是这样写的:

MOD = 1_000_000_007// 加
(a + b) % MOD// 减
(a - b + MOD) % MOD// 把任意整数 a 取模到 [0,MOD-1] 中,无论 a 是正是负
(a % MOD + MOD) % MOD// 乘(注意使用 64 位整数)
a * b % MOD// 多个数相乘,要步步取模,防止溢出
a * b % MOD * c % MOD// 除(MOD 是质数且 b 不是 MOD 的倍数)
a * qpow(b, MOD - 2, MOD) % MOD

其中 qpow 为 快速幂。

相关文章:

Leetcode 50. Pow ( x , n ) 快速幂、取模 C++实现

问题&#xff1a;Leetcode 50. Pow ( x , n ) 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数。 算法&#xff1a; 具体实现流程如下&#xff1a; 代码&#xff1a; class Solution { public:double myPow(double x, int N) {double ans 1;long long n N;if (n <…...

Java SE vs Java EE 与 JVM vs JDK vs JRE

Java SE&#xff08;Java Platform&#xff0c;Standard Edition&#xff09;: Java 平台标准版&#xff0c;Java 编程语言的基础&#xff0c;它包含了支持 Java 应用程序开发和运行的核心类库以及虚拟机等核心组件。Java SE 可以用于构建桌面应用程序或简单的服务器应用程序。…...

Linux YUM设置仓库优先级

1.安装yum-plugin-priorities优先级插件 yum install yum-plugin-priorities -y 2.设置仓库优先级 vim /etc/yum.repos.d/local.repo [local] namecentos7.5 baseurlfile:///mnt enable1 gpgcheck0 priority1 注释&#xff1a; priority1 #数字越小代表优先级越高&#xff…...

做一个不断更新的链接库

做一个不断更新的链接库 anaconda anaconda官方镜像源 anaconda清华镜像源 社区 CSDN CSDN-华为开发者空间 python开发库 股票爬虫 - akshare...

Ping32企业加密软件:保护数据安全

在数字化时代&#xff0c;数据安全已成为每个企业不可忽视的重要课题。无论是客户信息、财务报表&#xff0c;还是商业机密&#xff0c;数据的安全性直接关系到企业的声誉与运营。为了应对不断变化的安全威胁&#xff0c;选择一款可靠的企业加密软件尤为重要。在这里&#xff0…...

【Java】异常的处理-方式【主线学习笔记】

文章目录 前言1、处理概述2、Java异常处理机制&#xff08;方式&#xff09;方式一&#xff08;抓抛模型&#xff09;&#xff1a;try-catch-finally方式二&#xff1a;throws 异常类型总结 前言 Java是一门功能强大且广泛应用的编程语言&#xff0c;具有跨平台性和高效的执行…...

React modal暴露ref简洁使用

父组件使用 import { useRef } from react import { FormModal } from ./modalconst IndexRoute () > {const formRef useRef<any>()const openModal (row?: any) > {const params {title: row?.id ? 【${row.name}】编辑 : 创建,isView: false,row,api: r…...

小米路由器ax1500+DDNS+公网IP+花生壳实现远程访问

有远程办公的需求&#xff0c;以及一些其他东西。 为什么写&#xff1f; ax1500路由器好像没搜到相关信息。以及其中有一点坑。 前置 公网ip Xiaomi路由器 AX1500 MiWiFi 稳定版 1.0.54 实现流程 花生壳申请壳域名https://console.hsk.oray.com/ 这里需要为域名实名认证 …...

毕设分享 大数据用户画像分析系统(源码分享)

文章目录 0 前言2 用户画像分析概述2.1 用户画像构建的相关技术2.2 标签体系2.3 标签优先级 3 实站 - 百货商场用户画像描述与价值分析3.1 数据格式3.2 数据预处理3.3 会员年龄构成3.4 订单占比 消费画像3.5 季度偏好画像3.6 会员用户画像与特征3.6.1 构建会员用户业务特征标签…...

使用 Redis 实现分布式锁:原理、实现与优化

在分布式系统中&#xff0c;分布式锁是确保多个进程或线程在同一时间内对共享资源进行互斥访问的重要机制。Redis 作为一个高性能的内存数据库&#xff0c;提供了多种实现分布式锁的方式。本文将详细介绍如何使用 Redis 实现分布式锁&#xff0c;包括基本原理、实现方法、示例代…...

Android常用C++特性之std::make_pair

声明&#xff1a;本文内容生成自ChatGPT&#xff0c;目的是为方便大家了解学习作为引用到作者的其他文章中。 std::make_pair 是 C 标准库中的一个函数模板&#xff0c;用于创建一个 std::pair 对象。std::pair 是一种可以存储两个不同类型值的简单数据结构&#xff0c;类似于二…...

Kafka-参数详解

一、上下文 从《Kafka-初识》中可以看到运行kafka-console-producer和 kafka-console-consumer来生产和消费数据时会打印很多参数&#xff0c;这些参数给我们应对多种场景提供了遍历&#xff0c;除了producer和consumer的提供了参数外&#xff0c;Kafka服务器集群中的broker也…...

Docker Overlay2 空间优化

目录 分析优化数据路径规划日志大小限制overlay2 大小限制清理冗余数据 总结 分析 overlay2 目录占用磁盘空间较大的原因通常与 Docker 容器和镜像的存储机制以及它们的长期累积相关&#xff0c;其实我之前在 Docker 原理那里已经提到过了。 通常时以下几种原因导致&#xff…...

第 3 章:使用 Vue 脚手架

1. 初始化脚手架 1.1 说明 Vue 脚手架是 Vue 官方提供的标准化开发工具&#xff08;开发平台&#xff09;。最新的版本是 5.x。文档: https://cli.vuejs.org/zh/ 1.2 具体步骤 第一步&#xff08;仅第一次执行&#xff09;&#xff1a;全局安装vue/cli。 npm install -g vu…...

Spring 循环依赖详解:问题分析与三级缓存解决方案

在Spring框架中&#xff0c;循环依赖&#xff08;Circular Dependency&#xff09;是指多个Bean相互依赖&#xff0c;形成一个循环引用。例如&#xff0c;Bean A依赖于Bean B&#xff0c;而Bean B又依赖于Bean A。这种情况在Bean创建时可能导致Spring容器无法正常完成初始化&am…...

爬虫prc技术----小红书爬取解决xs

知识星球&#xff1a;知识星球 | 深度连接铁杆粉丝&#xff0c;运营高品质社群&#xff0c;知识变现的工具知识星球是创作者连接铁杆粉丝&#xff0c;实现知识变现的工具。任何从事创作或艺术的人&#xff0c;例如艺术家、工匠、教师、学术研究、科普等&#xff0c;只要能获得一…...

uni-app之旅-day06-加入购物车

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言8.0 创建 cart 分支8.1 配置 vuex8.2 创建购物车的 store 模块8.3 在商品详情页中使用 Store 中的数据8.4 实现加入购物车的功能8.5 动态统计购物车中商品的总数…...

【Kubernetes】常见面试题汇总(五十六)

目录 123. pod 创建失败&#xff1f; 124. kube-flannel-ds-amd64-ndsf7 插件 pod 的 status 为 Init:0/1 &#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#x…...

LabVIEW激光诱导击穿光谱识别与分析系统

LabVIEW激光诱导击穿光谱&#xff08;LIBS&#xff09;分析系统利用高能量脉冲激光产生高温等离子体&#xff0c;通过分析等离子体发出的光谱来定性分析样品中的元素种类。该系统的开发集成了软件与硬件的设计&#xff0c;实现了自动识别和定性分析功能&#xff0c;适用于环境监…...

Redis的基础篇

Redis的基础篇 1.在CentOs7上安装Redis&#xff08;最好不要在windows上装&#xff0c;版本少&#xff09; 1.安装gcc --> yum install gcc tcl(可能会报错&#xff0c;重新安装yum就行了) 2.下载redis --> 最好是6.2上的版本 3.解压redis --> tar -zxvf redis-6.2.…...

CANopen设备配置不求人:手把手教你用EDS/DCF文件玩转对象字典

CANopen设备配置实战&#xff1a;从EDS/DCF解析到对象字典高效配置 在工业自动化领域&#xff0c;CANopen协议因其开放性和灵活性成为设备互联的主流选择。而对象字典(Object Dictionary)作为CANopen设备的核心配置数据库&#xff0c;其管理效率直接影响项目开发周期。本文将带…...

Nginx、Tengine、OpenRestry的http和tcp后端健康检查【20260520-005篇】

文章目录 ✅ 一、核心能力概览(按产品维度) ✅ 二、HTTP 健康检查配置示例(三者对比) ▪️ Nginx(被动式,基础可靠) ▪️ Tengine(主动式,开箱即用) ▪️ OpenResty(Lua 主动式,高度可控) ✅ 三、TCP 健康检查配置示例 ▪️ Tengine(最简洁) ▪️ OpenResty(TC…...

X.509证书格式(SPDM协议)

字段名称含义用途示例待签名内容(tbsCertificate)Version (版本)含义: 证书版本号。取值: v1(0), v2(1), v3(2)。互联网 PKI 必须使用 v3 (值为 2)。告诉解析程序该按照哪个标准来读取后续的字段&#xff08;目前绝大多数为 v3&#xff09;。Version: 3 (0x2)Serial Number (序…...

告别connect!Qt Creator里用Lambda表达式写信号槽,代码能有多简洁?

Qt Creator中Lambda表达式重构信号槽&#xff1a;极致简洁的现代C实践 在Qt开发中&#xff0c;信号槽机制是GUI编程的核心支柱&#xff0c;但传统connect写法往往导致代码臃肿。当面对大量简单交互逻辑时&#xff0c;频繁声明槽函数和connect调用会让代码库迅速膨胀。Lambda表达…...

量子计算中数据驱动的哈密顿修正方法研究

1. 量子门控中的哈密顿修正挑战在量子计算领域&#xff0c;超导transmon比特因其相对较长的相干时间和可扩展性&#xff0c;成为当前最有前景的量子处理器实现方案之一。然而&#xff0c;实际硬件中存在的器件间差异和串扰效应&#xff0c;使得基于理论模型的脉冲设计与真实硬件…...

【云计算学习之路】学习Centos7系统-Linux网络配置管理

Linux网络TCP/IP协议概述OSI 七层模型与 TCP/IP 四层模型 协议对照表IP地址及网络常识IP地址A类IP地址B类IP地址C类IP地址D类IP地址特殊的网址子网掩码网关地址MAC地址Linux服务器IP命名规范Linux服务器网卡及主机名命名Linux服务器上网DNS设置Linux服务器默认网卡配置文件在/e…...

华硕笔记本性能革命:G-Helper轻量控制工具深度评测

华硕笔记本性能革命&#xff1a;G-Helper轻量控制工具深度评测 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Exper…...

MobaXterm自定义语法高亮进阶:修复绿色失效与打造个性化终端

1. 为什么你的MobaXterm绿色高亮总是不亮&#xff1f; 第一次用MobaXterm时我就被它的彩色终端吸引了&#xff0c;特别是成功操作会显示醒目的绿色&#xff0c;失败提示则是刺眼的红色。但用了两周后突然发现&#xff1a;所有成功操作的绿色提示全都消失了&#xff01;这就像开…...

委外加工成本智能核算与利润分析方案:基于LLM+超自动化的端到端实践

在2026年的工业数字化语境下&#xff0c;委外加工不再仅仅是生产能力的延伸&#xff0c;而是企业利润控制的核心环节。随着全球供应链的碎片化&#xff0c;委外成本的精细化核算已成为财务数字化转型的“深水区”。传统模式下&#xff0c;数据孤岛、BOM&#xff08;物料清单&am…...

别再死记公式了!用HFSS和Matlab FDTD两种方法,手把手教你仿真微带线阻抗(附工程文件)

微带线阻抗仿真实战&#xff1a;HFSS与Matlab FDTD双路径深度解析 微带线作为高频电路设计中最常见的传输线结构之一&#xff0c;其特性阻抗的准确计算直接关系到信号完整性和系统性能。许多工程师在学习初期都会遇到一个共同困惑&#xff1a;为什么教科书公式计算结果与仿真或…...