当前位置: 首页 > 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.lryc.cn/news/466433.html

相关文章:

  • Vue学习笔记(七、事件修饰符 .stop .capture .self .once .prevent)
  • web网站搭建(静态)
  • 高效特征选择策略:提升Python机器学习模型性能的方法
  • 2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第四弹 第一题
  • 优化多表联表查询的常见方法归纳
  • Java毕业设计 基于SpringBoot发卡平台
  • VRoid Studio 介绍 3D 模型编辑器
  • 软件设计模式------抽象工厂模式
  • 基于springboot+微信小程序校园自助打印管理系统(打印1)
  • 解锁文本数据可视化的无限可能:Wordcloud库全解析
  • 代码审计-Python Flask
  • 深度学习:开启人工智能的新纪元
  • 第十四章_File类与IO流
  • Qml-CheckBox的使用
  • Java的RocketMQ使用
  • 中间件之MQ-Kafka
  • [DB] NSM
  • Redis 高可用:从主从到集群的全面解析
  • 全能型选手视频播放器VLC 3.0.21 for Windows 64 bits支持Windows、Mac OS等供大家学习参考
  • 解决在Vue3中使用monaco-editor创建多个实例的导致页面卡死的问题
  • 【某农业大学计算机网络实验报告】实验二 交换机的自学习算法
  • 燕山大学23级经济管理学院 10.18 C语言作业
  • 【880线代】线性代数一刷错题整理
  • 【C++语言】精妙的哈希算法:原理、实现与优化
  • 基于STM32的手势电视机遥控器设计
  • 2、图像的特征
  • URL、URN和URI的区别
  • 深入理解Spring框架几个重要扩展接口
  • 使用dotnet-counters和dotnet-dump 分析.NET Core 项目内存占用问题
  • 1282:最大子矩阵