力扣每日一题50:Pow(x,n)

编程入门 行业动态 更新时间:2024-10-08 00:28:15

力扣每日一题50:<a href=https://www.elefans.com/category/jswz/34/1730940.html style=Pow(x,n)"/>

力扣每日一题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
  • -231 <= n <= 231-1
  • n 是一个整数
  • 要么 x 不为零,要么 n > 0 。
  • -104 <= xn <= 104

通过次数

403.5K

提交次数

1.1M

通过率

38.0%

解题思路:

用一次一次的乘法的话,当n再2^31-1附近的时候,会超时,而且还要考虑int类型最小值加绝对值后会超过int类型的问题。在这里用递归的方法。再n大于零的情况下,当n为奇数时pow(x,n)=pow(x,n/2)*x;当n为偶数时pow(x,n)=pow(x,n/2),n==0时返回1。n小于零的情况下就算1.0/pow(x,-n)。

代码:

class Solution {
public:double mulit(double x,long long n){if(n==0) return 1.0;double y=mulit(x,n/2);return n%2==0?y*y:x*y*y;}double myPow(double x, int n) {long long N=n;double ans=N>=0?mulit(x,N):1.0/mulit(x,N);return ans;}
};

更多推荐

力扣每日一题50:Pow(x,n)

本文发布于:2023-12-06 10:51:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1667352.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Pow

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!