摘要:题目描述给定一个类型的浮点数和类型的整数。分析可以采取暴力的解决办法,把乘以次就可以得到结果,但我们肯定不是想要这样的方法。观察相乘的过程,比如,其实可以写成,而且,,我们可以利用高次方的幂可以由低次方的幂相乘得来。
题目描述
给定一个double类型的浮点数a和int类型的整数m。求a的m次方。
分析可以采取暴力的解决办法,把a乘以m次就可以得到结果,但我们肯定不是想要这样的方法。
观察相乘的过程,比如a^7,其实可以写成a^1*a^2*a^4,而且a^4=a^2*a^2,
a^2=a*a,我们可以利用高次方的幂可以由低次方的幂相乘得来。
function Power(a, m) { var isNegative = false; if(m === 0) return 1; else if(m < 0){ if(a === 0) throw new Error(); else{ isNegative = true; m = -m; } } var res = 1, cur = a; while(m !== 0) { if(m & 1 === 1){ res = res * cur; } cur = cur * cur; m = m >>> 1; } return isNegative ? 1/res : res; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/95812.html
摘要:题目描述颠倒整数给定一个位有符号整数,将整数中的数字进行反转。根据这个假设,如果反转后的整数溢出,则返回。思路字符串和数组的之间的转换用和实现的次方 题目描述 颠倒整数给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: 输入: 120输出: 21注意: 假设我们的环境只能存储 32 位...
摘要:原码补码和反码原码一个数在计算机中是以二进制的形式存在的,其中第一位存放符号正数为负数为。中的位运算在中按位操作符会将其操作数转成补码形式的有符号位整数。原文链接由扯到中的位运算 这个话题的由来是2016年3月份的时候 NPM 社区发生了‘left-pad’事件,不久后社区就有人发布了用来补救的,也是现在大家能用到的 left-pad 库。 最开始这个库的代码是这样的。 module....
摘要:题目难度为,目前通过率为。这个特殊的数有如下特点足够大,但不能超过位,即最大为个它的二进制表示中奇数位为,偶数位为符合这两个条件的二进制数是如果用一个的幂次方数和它做与运算,得到的还是的幂次方数。将这个二进制数转换成进制表示。 题目来源于 LeetCode 上第 342 号问题:4 的幂。题目难度为 Easy,目前通过率为 45.3% 。 题目描述 给定一个整数 (32 位有符号整数)...
摘要:题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。示例给定函数应该返回新的长度并且原数组的前五个元素被修改为。也就是说,不对实参做任何拷贝在函数里修改输入数组对于调用者是可见的。 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输...
阅读 2596·2021-10-14 09:43
阅读 3558·2021-10-13 09:39
阅读 3288·2019-08-30 15:44
阅读 3136·2019-08-29 16:37
阅读 3700·2019-08-29 13:17
阅读 2730·2019-08-26 13:57
阅读 1824·2019-08-26 11:59
阅读 1237·2019-08-26 11:46