leetcode - Pow(x, n)

本文介绍了一种快速计算x^n的方法,通过递归将指数n分解为较小问题来提高效率。该算法能有效处理正数、负数指数的情况,并考虑了特殊数值如1和0的幂。适用于计算机科学中的多种场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 1 class Solution {
 2 public:
 3     double pow(double x, int n) {
 4         // IMPORTANT: Please reset any member data you declared, as
 5         // the same Solution instance will be reused for each test case.
 6         if (x<0){
 7             if (n % 2 == 0)
 8                 return pow(0-x, n);
 9             return 0-pow(0-x, n);
10         }
11         if (x == 1)
12             return 1;
13         if (n == INT_MIN && x>1)
14             return 0;
15         if (n == INT_MAX && x < 1)
16             return 0;
17         if (n < 0){
18             n = 0 - n;
19             x = 1 / x;
20             return pow(x, n);
21         }
22         if (n == 0)
23             return 1;
24         if (n == 1)
25             return x;
26         int t = n / 2;
27         double a = pow(x, t);
28         if (n % 2 == 0)
29             return a*a;
30          return a*a*x;
31     }
32 };

 

 

转载于:https://www.cnblogs.com/zhanghs/p/3434403.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值