资讯专栏INFORMATION COLUMN

leetcide 50 Pow(x, n)

Scott / 2543人阅读

摘要:问题描述题目要求我们实现一个求的次幂的函数函数,其中幂次数也可以是复数。其中是类型,范围是。的范围是想法如果单纯的暴力循环的话,会引起超时的问题。我们在这里可以用一种二分法的思想解决这个问题。同时注意当为时,如果直接让会溢出的问题。

问题描述
Implement pow(x, n), which calculates x raised to the power n (xn).
题目要求我们实现一个求x的n次幂的函数(pow函数),其中幂次数也可以是复数。
其中n是Integer类型,范围是 [−2^31, 2^31 − 1]。x的范围是(-100,100)

Example 1:
Input: 2.00000, 10
Output: 1024.00000
Example 2:
Input: 2.10000, 3
Output: 9.26100
Example 3:
Input: 2.00000, -2
Output: 0.25000
Explanation: 2-2 = 1/22 = 1/4 = 0.25

想法
如果单纯的暴力循环的话,会引起超时的问题。
我们在这里可以用一种二分法的思想解决这个问题。
同时注意当n为−2^31时,如果直接让n=-n会溢出的问题。
解法
    public double myPow(double x, int n) {
        if (n == 0) return 1;
        if (n < 0){
            x = 1/x;
            return (n %2 == 0) ? myPow(x*x, -(n/2)) : x*myPow(x*x, -(n/2));
        }
        return (n %2 == 0) ? myPow(x*x, n/2) : x*myPow(x*x, n/2);
    }   

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71587.html

相关文章

  • leetcode50 Pow(x, n)自定义实现指数运算

    摘要:题目要求此处为题目链接即用自己的代码实现指数运算。指数为负数即求其倒数。思路一二分法计算这题的思路我之前的一篇博客思路基本相同。所以在能转换为循环的情况下还是最好使用循环来解决。 题目要求 此处为题目链接即用自己的代码实现指数运算。指数运算一般有两种情况,即指数为整数和指数为负数的情况。指数为负数即求其倒数。 思路一:二分法计算 这题的思路我之前的一篇博客思路基本相同。有兴趣的可以直接...

    DoINsiSt 评论0 收藏0
  • JavaScript是怎样编码数字的[How numbers are encoded in Java

    摘要:译者注规范化就是把小数点放在第一个非零数字的后面总结当指数的范围是十进制分数不是所有的十进制分数都能够非常精确的表示例如和都不能够被精确的表示成二进制浮点数。相同的,也不能被精确表示成一个十进制分数,它大概能被表示成。 在JavaScript中所有的数字都是浮点数,本篇文章将介绍这些浮点数在JavaScript内部是怎样被转为64位二进制的。我们会特别考虑整数的处理,所以读完本篇之后,...

    oysun 评论0 收藏0
  • 数字在JavaScript中是如何编译的

    摘要:数字数字都是浮点数,按照标准进行存储。因此,只有偶数可以在范围内表示。但只有超过指数的上限才称为中的溢出。结论在这篇博文中,我们研究了如何将其浮点数转换为位。 JavaScript中的所有数字都是浮点数。这篇博客文章解释了这些浮点数如何在64位二进制内部表示。由于特别考虑,本文中的数字将用整数表示,以便在阅读本文后,您将了解在以下交互中会发生什么: (译者注:浮点数并不一定等于小数,定...

    Moxmi 评论0 收藏0
  • 聊聊base62与tinyURL

    摘要:进制转进制也类似,从右往左每个数的次方,从开始。短的转换主要思路,维护一个全局自增的,每来一个长,将其与一个自增绑定,然后利用将该自增转换为字符串,即完成转换。测试关于容量自增为型,最大如何设计短网址系统 序 base64大家肯定是很熟悉了,那base62是什么东东,它常被用来做短url的映射。 ascii编码的62个字母数字 Value Encoding Value Encodin...

    phoenixsky 评论0 收藏0
  • 【两万字精编~建议抱走】蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(下)

    摘要:时间复杂度为,和分别是和的长度示例如下输出输出把从号位开始长度为的子串替换为上把的迭代器范围的子串替换为示例如下 欢迎回到:遇见蓝桥遇见你,不负代码不负卿! 目录 【补充】:常用头文件及库函数 1.#include sscanf() 和 sprintf() 2.#include 3.#...

    sixleaves 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<