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

[LeetCode] 50. Pow(x, n)

题目描述:

实现 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
  • -2的31 <= n <= 2的31-1
  • n 是一个整数
  • 要么 x 不为零,要么 n > 0 。
  • -104 <= xn <= 104

题目链接:

. - 力扣(LeetCode)

解题主要思路:

采用快速幂的思路,即假如要求2的21次方,那2的21次方= 2的10次方*2的10次方*2,2的10次方=2的5次方*2的5次方,以此类推......

不过需要注意的是,假如n为负数,那我们需要的答案为1.0/pow(x, -n),然而-2的31 <= n <= 2的31-1,看似在int的取值范围内,可是我们传入的是-n,这样的话就超过int的取值范围了,因此我们需要转化为long long类型。

解题代码:

class Solution {
public:double myPow(double x, int n) {return n < 0 ? 1.0 / pow(x, -(long long)n) : pow(x, n);}double pow(double x, long long n){if (n == 0) return 1.0;double tmp = pow(x, n/2);return n % 2 == 0 ? tmp * tmp : tmp * tmp * x;}
};


http://www.mrgr.cn/news/56234.html

相关文章:

  • 【Unity】Unity Shader学习笔记(八)基础纹理2:高度纹理、法线纹理、模型空间下的法线纹理、切线空间下的法线纹理光照计算
  • C++ 模版和继承
  • ArgoWorkflow教程(七)---高效的步骤间文件共享策略
  • [C#][winform]基于yolov5的驾驶员抽烟打电话安全带检测系统C#源码+onnx模型+评估指标曲线+精美GUI界面
  • 提升小学语文教学效果的思维导图方法
  • FineReport 分页
  • 基于STM32的多功能MP3播放器
  • 数字信号处理实验简介
  • 流程引擎在企业管理中的关键作用
  • 双十一开启极速达夜派;黑神话获泰国年度最佳游戏;AI 模型可帮助识别 17000 多种疾病的候选药物....| 网易数智日报
  • 配置nginx服务通过ip访问多网站
  • 前端开发-HTML
  • 微博评论获取和数据分析(源码)
  • uniapp学习(007-1 壁纸项目:页面框架搭建)
  • Go:error处理机制和函数
  • 基于Java+springboot的博客系统
  • 深入理解Linux内核网络(三):内核发送网络包
  • 服务器的介绍
  • 服务器安装Anaconda,Anaconda安装Pytorch
  • 【信息安全服务】常见服务高危端口排查(含内网)
  • [Linux进程概念]命令行参数|环境变量
  • netty的网络IO模型
  • 音乐之趣:叶珂吐槽伍佰,黄晓明笑对人生
  • Git 完整教程:版本管理、分支操作与远程仓库解析
  • 链动 2+1 模式、AI 智能名片与 S2B2C 商城小程序:提升企业产品方便性的创新策略
  • 云原生技术:nacos进化到servicemash