首页 > 其他分享 >快速幂:剑指 Offer 16. 数值的整数次方

快速幂:剑指 Offer 16. 数值的整数次方

时间:2023-05-09 10:33:47浏览次数:54  
标签:return Offer res 16 long double 次方 2147483648

题目描述:

实现 pow(xn) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。

 

 

解题思路:

 

 

 

class Solution{
    public double myPow(double x,int n) {
        if(x==0.0) return 0;
        long b = n;
        double res=1;
        if(b<0){
            x=1/x;
            b=-b;
        }
        while (b>0){
            if((b&1)==1) res*=x;//判断n是奇数吗(等价于&1操作),是多乘出一个x
            x *= x;//n是偶数
            b>>=1;//向下整除以2等价于右移一位
        }
        return res;
    }
}

 

注:

Java 代码中 int32 变量 n∈[−2147483648,2147483647] ,因此当n=−2147483648 时执行 n=−n 会因越界而赋值出错。

解决方法是先将 n 存入 long 变量 b ,后面用 b 操作即可。

 

标签:return,Offer,res,16,long,double,次方,2147483648
From: https://www.cnblogs.com/zhz123567/p/17384122.html

相关文章

  • Python_16 session、cookie 鉴权
    一、查缺补漏1.pprint https://www.cnblogs.com/yjybupt/p/10669988.html https://www.cnblogs.com/wongbingming/p/12854618.html 2.鉴权: http://testingpai.com/article/1621929988356 3.importjson json.du......
  • Jdk16中JcTree的使用问题
    因为jdk16进行了强制的模块化使用限制,需要增加add-opens去进行模块的放开,但是如果每次都需要在项目pom文件或者启动命令中增加,非常不优雅。而且很多重复的命令。所以想有没有更好的办法去解决。看了lombok1.18.20中的解决方法,这边来总结一下。lombok这个问题的讨论publica......
  • 百尺竿头更进一步:最高排名16
    由17到16,虽然只是一名,也实在是不容易。原创4873周排名2869总排名16访问8219569等级10积分112875粉丝4295获赞2078评论6696收藏3131现在排名特别容易变化,一周不写就下来了。同样的,周六周日发文,对于排名似乎有特别帮助(要求每日发文?)......
  • 群晖服务器216j增加硬盘,如何添加硬盘扩容你的群晖 NAS?
     大家买NAS的同时会不会把硬盘数量和容量都配足呢?”对于数据的存储容量总是计划赶不上变化;而对存储设备的精挑细选也总是千算万算算不准大促降价;就算十拿九稳觉得硬盘容量肯定够用个十来年,可是手机拍照越来越清晰;视频文件越来越大;加上自己喜欢的爱豆出产量也越来越高,眼瞅......
  • Git--no matching host key type found. Their offer: ssh-rsa
     解决方法:在用户目录下的.ssh文件夹下新建一个config文件Host*HostKeyAlgorithms+ssh-rsaPubKeyAcceptedKeyTypes +ssh-rsa......
  • Java 三方接口PHP写法;doHmacSHA2; 将字节数组转换成16进制字符串;Mac.getInstance;Hma
    先看一段Java代码,一个签名过程1packagecom.sixents.bss.filter;234importorg.apache.http.HttpEntity;5importorg.apache.http.NameValuePair;6importorg.apache.http.client.entity.UrlEncodedFormEntity;7importorg.apache.http.client.met......
  • LeetCode 516. 最长回文子序列
    classSolution{public:intf[1010][1010];//f[i][j]表示s[i~j]之间的最长序列intINF=0x3f3f3f3f;intlongestPalindromeSubseq(strings){intn=s.size();s=''+s;for(intlen=1;len<=n;len++)for(inti=1;i......
  • 第16天打卡
    问题: 算法设计:有问题可知,一共13张牌,数记次数就是那一张,相当于每个盒子放一张牌,这个盒子在第几个数上就放第几张牌,还要注意拿出来的牌要跳过,提用循环即可,13张牌循环13次,找到空盒子并放入对应的牌即可 源代码:#include<stdio.h>intmain(){inta[14];inti,j=1,n;for(i=......
  • P9166 [省选联考 2023] 火车站
    P9166[省选联考2023]火车站这道题很抽象,有这么几点注意事项1,火车必须走到尽头才可以停下,所以答案一定会出于输入的这些端点2,火车只能往一个方向走,不可以在中途换向那么这题怎么处理?不会真的要一波操作然后把所有答案排个序吧?我选择标记法!标记答案,省去了排序的过程。那么......
  • K-D Tree模板/P4169 [Violet]天使玩偶/SJY摆棋子
    \(\color{purple}\text{P4169[Violet]天使玩偶/SJY摆棋子}\)以本题为例题讲解模板怎么写。思路\(\text{K-DTree}\)是一种类二叉查找树,不过元素是多维的,所以每次对于子树的划分也是依据不同维度的。本题使用二维的\(\text{K-DTree}\),这样每次将图分成左右子树其实就是将......