力扣每日一题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;
    }
};
相关推荐
叩码以求索33 分钟前
浅谈:前序遍历反转法求解N叉树的后序遍历
算法
官乐2 小时前
AI面试指南(多agent开发流程)
人工智能·面试·职场和发展
北风toto2 小时前
中缀、前缀、后缀表达式
算法·软件设计师
程序员三藏2 小时前
自动化测试用例编写详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
听取WA声一片(无恶意)2 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先
跟我一起学测试呀2 小时前
软件测试面试总结,备战金九银十
面试·职场和发展
码流怪侠2 小时前
2026年8月GitHub热榜深度拆解:Agent Skills席卷开源圈,一个“技能包“收割5万星
算法·程序员·github
hold?fish:palm2 小时前
30 两两交换链表中的节点
数据结构·算法·链表
Nil2083 小时前
leetcode 98验证二叉搜索树
算法·leetcode·职场和发展
不正经学生3 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法