「ALBB面试题」 【题目】 如何判断一个数是否为2的n次方 【题目分析】 看到这种题,相信大家第一反应就是循环除2,这样做肯定是可以得出结果的;但是这种做法无疑大大增加了计算机的运行时间,一个非常大的数字可能会让计算机内存溢出,有没有更好的解决方式呢?有!如果你对数字2敏感,那么一定 ...
昨天去面试时,面试官问了一道面试题,说如何判断一个数是不是 的n次方幂,我当时不知道 的n次方幂是什么 糗大发了 ,还好给我解释了一下。最后回家上网查查资料,整理了一下方法。 方法一 如何判断一个数是否是 的n次方幂,其简单判断方法就是这个数num直接除 ,若余数为 ,则num 再除 ,再判断是不是余数是不是 ,是的话继续按上一步来,直到最后为num 。 比如: 是 是 不是 不是 不是 代码实 ...
2017-08-23 10:57 7 5708 推荐指数:
「ALBB面试题」 【题目】 如何判断一个数是否为2的n次方 【题目分析】 看到这种题,相信大家第一反应就是循环除2,这样做肯定是可以得出结果的;但是这种做法无疑大大增加了计算机的运行时间,一个非常大的数字可能会让计算机内存溢出,有没有更好的解决方式呢?有!如果你对数字2敏感,那么一定 ...
一、2的幂次方的基本定义 什么样的数为2的幂次方?例如2^0=1,2^1=2,2^2=4……,符合公式2^n(n>=0)的数称为2的幂次方。 如何判断一个数是否为2的幂次方呢?基本思路:把一个数不断的除以2,得到商与余数,若余数等于1,则这个数必然不是;若余数大于1,则继续除以2,直到商 ...
思路 :用当前值除以3 获得一个值 a , b = parseInt(a) c = Math.pow(3,b); 用c 除以 要判断的数,如果能除尽, 则是, 如果除不尽, 则不是。 ...
利用与(&)运算符 可以快速判断一个数是否为2的幂次方 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了N个0, 因此问题可以转化为判断1后面是否跟了N个0就可以了。 如果将这个数减去1后会发现,仅有的那个1会变为0,而原来 ...
第一种方法 暴力解法 第二种方法 示例分析 以16为例,二进制表示为 16减1为15的二进制表示为 两者按位与 十进制表示为0,说明是2的N次幂。 扩展-判断一个数是否是n的N次幂 参考 [算法]快速判断一个数是否是2的幂次方 ...
function isNumber(val) { var regPos = /^\d+(\.\d+)?$/; //非负浮点数 var regNeg = /^(-(([0-9]+ ...