[LeetCode] 50. Pow(x, n)

ops/2024/10/24 10:20:01/

题目描述:

实现 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.ppmy.cn/ops/127707.html

相关文章

2024年科技赋能教育,AI辅导引领新趋势

在近日举行的2024年中国国际服务贸易交易会上&#xff0c;教育服务展区凭借科技与教育深度融合的特色&#xff0c;成功吸引了大量参观者的注意。特别是主打AI个性化辅导的学习产品&#xff0c;更是成为了众多家长眼中的“省妈神器”。 “大语言模型”技术的快速发展及其科学化…

【C++刷题】力扣-#243-最短单词距离

题目描述 给定一个单词列表 words 和两个单词 word1 和 word2&#xff0c;返回这两个单词在列表中的最短距离。如果 word1 和 word2 是同一个单词&#xff0c;则返回它与自身的最近距离。 示例 示例 1: 输入: words ["practice", "makes", "perfec…

函数模板和类模板

博客ID&#xff1a;LanFuRenC系列专栏&#xff1a;C语言重点部分 C语言注意点 C基础 Linux 数据结构 C注意点 声明等级&#xff1a;黑色->蓝色->红色 欢迎新粉加入&#xff0c;会一直努力提供更优质的编程博客&#xff0c;希望大家三连支持一下啦 目录 1&#xff0…

【系统规划与管理师】历年各章节分值汇总(论文)

【移动端浏览】☞【系统规划与管理师】历年各章节分值汇总&#xff08;论文&#xff09; 第4章 IT服务规划设计 第5章 IT服务部署实施 第6章 IT服务运营管理 第7章 IT服务持续改进 第8章 监督管理 第9章 IT服务营销 第10章 团队建设与管理

新版idea菜单栏展开与合并

新版idea把菜单栏合并了看着很是不习惯&#xff0c;找了半天原来在这里展开 ① 点击文件 -> 设置 ② 点击外观与行为 -> 外观 -> 合并主菜单和窗口标题 然后确定&#xff0c;重启即可

10.22学习

1.求余 在C语言中&#xff0c;求余操作是通过取模运算符 % 来实现的。取模运算符会返回两个数相除后的余数。对于正数和负数的除法&#xff0c;求余的结果会有所不同&#xff0c;但 % 运算符总是返回被除数的符号。 下面是一个简单的例子&#xff0c;展示如何使用 % 运…

KubeSphere

初始密码 Account: admin Password: P88w0rd ansible部署 选一台master 节点 --- - hosts: k8s_mastersbecome: yestasks:- name: Install Gitpackage:name: gitstate: present- name: Download Helmget_url:url: https://get.helm.sh/helm-v3.16.2-linux-amd64.tar.gzdest: …

ansible————task控制

一、loop循环 当某一个操作需要多次执行的时候&#xff0c;就需要用到循环 1、循环语句 安装多个安装包&#xff0c;启动多个应用 [rootcontrol ansible_manage]# cat play_book/loop.yaml --- - name: loop exercisehosts: manage1vars_files:- var/loop_var.yamltasks:-…