糖逗 发表于 2020-4-22 11:12:11

C++刷leetcode(50. Pow(x, n))【快速幂】

题目描述:

实现 pow(x, n) ,即计算 x 的 n 次幂函数。

示例 1:

输入: 2.00000, 10
输出: 1024.00000
示例 2:

输入: 2.10000, 3
输出: 9.26100
示例 3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
说明:

-100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。


double getResult(double x, int n){
      if(n == 0) return 1;
      else if(n > 0) return getResult(x, -n);
      else if(n%2!= 0) returnx*getResult(x, n+ 1);
      return getResult(x*x, n/2);
    }
    double myPow(double x, int n) {
      double result = getResult(x, n);
      return n<0 ? 1/result:result;
    }


注意事项:
1.快速幂:https://leetcode-cn.com/problems/powx-n/solution/c-kuai-su-mi-di-gui-yu-die-dai-by-wen-mu-yang/
2." 需要注意的是测试用例中 n可能存在-2147483648的情况,由于有符号整数负数范围比正数范围大, 所以可以先把n转换为负数进行计算(避免越界)"引自leetcode评论区。

_2_ 发表于 2020-4-22 11:18:00

告诉我你用了多长时间......

糖逗 发表于 2020-4-22 11:39:21

_2_ 发表于 2020-4-22 11:18
告诉我你用了多长时间......

要一起刷题吗{:10_330:}

_2_ 发表于 2020-4-22 13:32:38

糖逗 发表于 2020-4-22 11:39
要一起刷题吗

对不起,我用的是 Python
https://fishc.com.cn/forum.php?mod=collection&action=view&ctid=1611&fromop=my

_2_ 发表于 2020-4-22 13:39:08

糖逗 发表于 2020-4-22 11:39
要一起刷题吗

可以啊{:10_298:}
https://fishc.com.cn/forum.php?mod=collection&action=view&ctid=1611&fromop=my
先看看我的淘帖吧

糖逗 发表于 2020-4-22 13:40:23

_2_ 发表于 2020-4-22 13:39
可以啊
https://fishc.com.cn/forum.php?mod=collection&action=view&ctid=1611&fromop=my
...

关注啦!

_2_ 发表于 2020-4-22 13:43:24

糖逗 发表于 2020-4-22 13:40
关注啦!

蟹蟹{:10_298:}
页: [1]
查看完整版本: C++刷leetcode(50. Pow(x, n))【快速幂】