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

【力扣 50】Pow(x, n) C++题解(数学+递归+快速幂)

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

示例 1:

输入:x = 2.00000, n = 10
输出:1024.00000
示例 2:

输入:x = 2.10000, n = 3
输出:9.26100
示例 3:

输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25

提示:

-100.0 < x < 100.0
-231 <= n <= 231-1
n 是一个整数
要么 x 不为零,要么 n > 0 。
-104 <= xn <= 104


思路

函数myPow是主函数,调用了qpow函数进行实际的计算。qpow函数的参数是底数x和指数n。在qpow函数中,首先检查指数n是否为0,如果为0,则直接返回1,因为任何数的0次方都为1。

如果指数n小于0,那么计算的是 x − n x^{-n} xn,即 1 / x n 1/x^n 1/xn,因此返回 1 / qpow ( x , − n ) 1/\text{qpow}(x, -n) 1/qpow(x,n)

如果指数n为奇数,那么 x n = x n − 1 × x x^n = x^{n-1} \times x xn=xn1×x,因此返回 qpow ( x , n − 1 ) × x \text{qpow}(x, n-1) \times x qpow(x,n1)×x

如果指数n为偶数,那么 x n = ( x n / 2 ) 2 x^n = (x^{n/2})^2 xn=(xn/2)2,这里为了避免重复计算,用tmp变量保存了 x n / 2 x^{n/2} xn/2的结果,然后返回 t m p × t m p tmp \times tmp tmp×tmp


AC代码

/** @lc app=leetcode.cn id=50 lang=cpp** [50] Pow(x, n)*/// @lc code=start
class Solution {public:double myPow(double x, int n) { return qpow(x, n); }double qpow(double x, long long n) {if (!n) {return 1;}if (n < 0) {return 1 / qpow(x, -n);}if (n % 2 == 1) {return qpow(x, n - 1) * x;} else {double tmp = qpow(x, n / 2);return tmp * tmp;}}
};
// @lc code=end

相关文章:

【力扣 50】Pow(x, n) C++题解(数学+递归+快速幂)

实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000 示例 2&#xff1a; 输入&#xff1a;x 2.10000, n 3 输出&#xff1a;9.26100 …...

速盾:服务器接入CDN后上传图片失败的解决方案

本文将探讨当服务器接入CDN后&#xff0c;上传图片失败的常见原因&#xff0c;并提供解决方案以解决这些问题。同时&#xff0c;我们还将附上一些相关的问题和解答&#xff0c;让读者更好地理解和应对这些挑战。 随着互联网的持续发展&#xff0c;网站的性能和速度对于用户体验…...

LabVIEW高级CAN通信系统

LabVIEW高级CAN通信系统 在现代卫星通信和数据处理领域&#xff0c;精确的数据管理和控制系统是至关重要的。设计了一个基于LabVIEW的CAN通信系统&#xff0c;它结合了FPGA技术和LabVIEW软件&#xff0c;主要应用于模拟卫星平台的数据交换。这个系统的设计不仅充分体现了FPGA在…...

FastSpeech2——TTS论文阅读

笔记地址&#xff1a;https://flowus.cn/share/1683b50b-1469-4d57-bef0-7631d39ac8f0 【FlowUs 息流】FastSpeech2 论文地址&#xff1a;lFastSpeech 2: Fast and High-Quality End-to-End Text to Speechhttps://arxiv.org/abs/2006.04558 Abstract&#xff1a; tacotron→…...

如何才能拥有比特币 - 01 ?

如何才能拥有BTC 在拥有 BTC 之前我们要先搞明白 BTC到底保存在哪里&#xff1f;我的钱是存在银行卡里的&#xff0c;那我的BTC是存在哪里的呢&#xff1f; BTC到底在哪里&#xff1f; 一句话概括&#xff0c;BTC是存储在BTC地址中&#xff0c;而且地址是公开的&#xff0c;…...

Unity | 渡鸦避难所-8 | URP 中利用 Shader 实现角色受击闪白动画

1. 效果预览 当角色受到攻击时&#xff0c;为了增加游戏的视觉效果和反馈&#xff0c;可以添加粒子等动画&#xff0c;也可以使用 Shader 实现受击闪白动画&#xff1a;受到攻击时变为白色&#xff0c;逐渐恢复为正常颜色 本游戏中设定英雄受击时播放粒子效果&#xff0c;怪物…...

K8S--安装metrics-server,解决error: Metrics API not available问题

原文网址&#xff1a;K8S--安装metrics-server&#xff0c;解决error: Metrics API not available问题-CSDN博客 简介 本文介绍K8S通过安装metrics-server来解决error: Metrics API not available问题的方法。 Metrics Server采用了Kubernetes Metrics API的标准&#xff0c…...

flume自定义拦截器

要自定义 Flume 拦截器&#xff0c;你需要编写一个实现 org.apache.flume.interceptor.Interceptor 接口的自定义拦截器类。以下是一个简单的示例&#xff1a; import org.apache.flume.Context; import org.apache.flume.Event; import org.apache.flume.interceptor.Interce…...

安卓Spinner文字看不清

Holo主题安卓13的Spinner文字看不清&#xff0c;明明已经解决了&#xff0c;又忘记了。 spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {TextView textV…...

深入浅出hdfs-hadoop基本介绍

一、Hadoop基本介绍 hadoop最开始是起源于Apache Nutch项目&#xff0c;这个是由Doug Cutting开发的开源网络搜索引擎&#xff0c;这个项目刚开始的目标是为了更好的做搜索引擎&#xff0c;后来Google 发表了三篇未来持续影响大数据领域的三架马车论文&#xff1a; Google Fil…...

宝塔面板部署MySQL并结合内网穿透实现公网远程访问本地数据库

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…...

数据结构<1>——树状数组

树状数组&#xff0c;也叫Fenwick Tree和BIT(Binary Indexed Tree)&#xff0c;是一种支持单点修改和区间查询的&#xff0c;代码量小的数据结构。 那神马是单点修改和区间查询&#xff1f;我们来看一道题。 洛谷P3374(模板): 在本题中&#xff0c;单点修改就是将某一个数加上…...

Servlet生命周期

第一阶段&#xff1a; init&#xff08;&#xff09;初始化阶段 当客户端想Servlet容器&#xff08;例如Tomcat&#xff09;发出HTTP请求要求访问Servlet时&#xff0c;Servlet容器首先会解析请求&#xff0c;检查内存中是否已经有了该Servlet对象&#xff0c;如果有&#xff…...

npm i 报一堆版本问题

1&#xff0c;先npm cache clean --force 再下载 插件后缀加上 --legacy-peer-deps 2&#xff0c; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz failed, reason…...

Linux设备管理模型-01:基础数据结构

文章目录 1. 设备管理模型2. 基本数据结构2.1 kobject2.2 kset 1. 设备管理模型 设备模型是内核提供的一个编写驱动的架构。 设备管理是设备-总线-驱动结构。 linux中的设备是由树状模型组织的&#xff0c;从sysfs中可以查看树状结构。 他本身实现了&#xff1a; 电源管理热…...

opencv#32 可分离滤波

滤波的可分离性 就是将一个线性滤波变成多个线性滤波&#xff0c;这里面具体所指的是变成x方向的线性滤波和y方向的线性滤波。无论先做x方向的滤波还是y方向滤波&#xff0c;两者的叠加结果是一致的&#xff0c;这个性质取决于滤波操作是并行的&#xff0c;也就是每一个图像在滤…...

android 导航app 稳定性问题总结

一 重写全局异常处理&#xff1a; 1 是过滤掉一些已知的无法处理的 问题&#xff0c;比如TimeoutException 这种无法根除只能缓解的问题可以直接catch掉 2 是 一些无法继续的问题可以直接杀死重启&#xff0c;一些影响不是很大的&#xff0c;可以局部还原 比如&#xff1a; p…...

第11次修改了可删除可持久保存的前端html备忘录:将样式分离,可以自由秒添加秒删除样式

第11次修改了可删除可持久保存的前端html备忘录&#xff1a;将样式分离&#xff0c;可以自由秒添加秒删除样式 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"…...

hcip高级网络知识

一&#xff1a;计算机间信息传递原理 抽象语言----编码 编码---二进制 二进制---转换为电流&#xff08;数字信号&#xff09; 处理和传递数字信号 二&#xff1a;OSI--七层参考模型 ISO--1979 规定计算机系统互联的组织&#xff1a; OSI/RM ---- 开放式系统互联参考模型 --- 1…...

常用电子器件学习——MOS管

MOS管介绍 MOS&#xff0c;是MOSFET的缩写。MOSFET 金属-氧化物半导体场效应晶体管&#xff0c;简称金氧半场效晶体管&#xff08;Metal-Oxide-Semiconductor Field-Effect Transistor, MOSFET&#xff09;。 一般是金属(metal)—氧化物(oxide)—半导体(semiconductor)场效应晶…...

多模态扩展:OpenClaw+GLM-4.7-Flash处理图片信息

多模态扩展&#xff1a;OpenClawGLM-4.7-Flash处理图片信息 1. 为什么需要多模态能力 上周我在整理产品截图时遇到一个典型问题&#xff1a;需要从200多张UI截图中提取所有按钮文字和位置信息。手动操作不仅耗时&#xff0c;还容易遗漏细节。这让我开始思考——能否让OpenCla…...

单一模型可能涌现不出超级智能,但 Agent 协作体却极有可能。

当 AI 把产品能力拉齐&#xff0c;注意力才是唯一的护城河 你有没有这种感觉&#xff1f;2025 年底&#xff0c;用 AI 一键生成一个完整 App 已经不是什么新闻&#xff0c;Vibe Coding 让普通开发者一天就能上线一个产品。可产品做出来了&#xff0c;下载量却像石沉大海&#x…...

UE5场景过曝/白屏排查指南:从后期处理体积到项目设置的实战修复

1. 当UE5场景变成"雪盲症"时该怎么办&#xff1f; 第一次打开UE5项目看到白茫茫一片的时候&#xff0c;我差点以为显卡烧了。这种场景过曝现象就像在雪山没戴墨镜&#xff0c;所有细节都被强光吞噬。新手遇到这种情况别慌&#xff0c;我整理了从"急救措施"…...

手把手教你用readelf解析DWARF栈信息(含常见错误排查)

深入解析DWARF栈信息&#xff1a;从readelf实战到疑难排查 调试二进制文件时&#xff0c;栈信息的解析往往是定位问题的关键。当程序崩溃或异常时&#xff0c;理解调用栈的状态不仅能帮助我们快速定位问题&#xff0c;还能揭示更深层次的运行机制。本文将带你深入探索如何利用r…...

【离线无忧】PyAutoGUI内网环境高效安装指南

1. 为什么需要离线安装PyAutoGUI&#xff1f; 最近接手了一个自动化测试项目&#xff0c;需要在完全隔离的内网环境中部署PyAutoGUI。刚开始觉得这不过是个普通的Python包&#xff0c;直到发现服务器连pip都跑不通时才意识到问题的严重性。这种场景在企业开发中其实非常常见—…...

OCLP-Mod:终极指南 - 让老旧Mac免费升级到最新macOS

OCLP-Mod&#xff1a;终极指南 - 让老旧Mac免费升级到最新macOS 【免费下载链接】OCLP-Mod A mod version for OCLP,with more interesting features. 项目地址: https://gitcode.com/gh_mirrors/oc/OCLP-Mod 你是否拥有一台被苹果官方"抛弃"的老旧Mac&#x…...

Path of Building终极指南:5分钟掌握流放之路最强Build规划工具

Path of Building终极指南&#xff1a;5分钟掌握流放之路最强Build规划工具 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building&#xff08;简称PoB&#x…...

RWKV7-1.5B-g1a轻量对话模型应用:微信公众号自动回复+知识库问答搭建

RWKV7-1.5B-g1a轻量对话模型应用&#xff1a;微信公众号自动回复知识库问答搭建 1. 模型简介与特点 rwkv7-1.5B-g1a 是基于 RWKV-7 架构的多语言文本生成模型&#xff0c;特别适合中文轻量对话场景。相比传统大模型&#xff0c;它具有以下优势&#xff1a; 资源占用低&#…...

从浮点到定点:手把手教你用MATLAB自定义函数实现加减乘除(避坑溢出与精度损失)

从浮点到定点&#xff1a;手把手教你用MATLAB自定义函数实现加减乘除&#xff08;避坑溢出与精度损失&#xff09; 当算法需要从实验室环境迁移到嵌入式设备时&#xff0c;浮点运算的硬件开销常常成为瓶颈。这时定点数运算就像一把手术刀——精准控制每个比特的用途&#xff0c…...

路径规划算法技术选型与实战指南:从理论到工程落地

路径规划算法技术选型与实战指南&#xff1a;从理论到工程落地 【免费下载链接】PathPlanning Common used path planning algorithms with animations. 项目地址: https://gitcode.com/gh_mirrors/pa/PathPlanning 当仓库机器人在密集货架间灵活避障&#xff0c;当无人…...