判断一个数是否为2的n次方
来源:互联网 发布:js获取单选框选中属性 编辑:程序博客网 时间:2024/06/04 17:48
参考书籍:算法设计与分析基础 Java程序员面试宝典-何昊等
package com.Howard.test11;/** * 判断一个数是否为2的n次方 * @author Howard * 2017年4月15日 */public class IsPower {/** * 利用移位 这里的左移相当于乘以2 * 时间复杂度O(logn) * @param n * @return */public static boolean isPower1(int n) {if (n < 1) return false;int i = 1;while (i <= n) {if (i == n) return true;i <<= 1;}return false;}/** * 一个数如果是2的n次方,那么这个数二进制中只有一位是1,其余是0 * 如果该数减1,则其二进制与上面的完全不同, * 利用这点,如果n是2的n次方,那么n&(n-1)必为0 * @param n * @return */public static boolean isPower2(int n) {if (n < 1) return false;int m = n & (n - 1);return m == 0;}public static void main(String[] args) {System.out.println(isPower1(4));System.out.println(isPower2(6));}}
0 0
- 如何判断一个数是否为2的N次方
- 如何判断一个数是否为2的N次方
- 如何判断一个数是否为2的N次方
- 判断一个数是否为2的N次方问题
- 判断一个数是否为2的N次方问题
- 判断一个数是否为2的N次方
- 判断一个数是否为2的n次方
- 判断一个数是否为2的n的次方数,六种方法
- 使用位运算判断一个数是否为2的N次方
- 位运算判断一个数是否为2的n次方
- 面试题 判断一个数是否为2的n 次方
- 【C语言】判断一个数是否为2的n次方
- C语言——不使用循环判断一个数是否为2的N次方
- 判断一个数是否是2的n次方
- 判断一个数(x)是否是2的n次方
- java判断一个数是否是2的N次方
- 判断一个数是否是2的n次方
- 如何判断一个数是否是2的n次方
- 机试算法题(2)--成绩排序
- 上传本地项目到github
- Rotate List
- J
- 无题
- 判断一个数是否为2的n次方
- XXXLIVE系统开发小纪
- 动态规划练习——最大子矩阵
- code[vs] 3115 高精度练习之减法
- Huffman编码解码
- TENA--试验与训练使能体系结构
- 购物车(Java集合框架)
- Firefox显示禁用
- weex使用日记之列表-详情页