刷题碰见判断是否是这个数的幂,如果是判断是否是2的幂,利用其二进制存储规律(...11110), 从右往左第二位开始便全是二的幂,所以只要用位运算里面的&,将1与其数相与一下即可,若其为0,则是2的幂次,此外在此前还有一个特判1,1是2的0次,如果判断是否为其他数的幂次,则有一个通用的模板,如下图:
这是一个判断n是否是5的幂次的代码,若要判断其他,将5改了即可; 下面是代码解读和思路:要判断一个数是否是某数(假设是m)的幂次,我们可以先对其进行取模(%)运算,然后让n除以m再进行判断,到n = 1时(不满足 % 条件)即为 m 的幂。