给定一个数判断是否为2的幂
2017-11-10 10:41
309 查看
思路
1 判断一个数 是否为2 的幂可以考虑 n&(n-1)或者n^(n-1)
2 如果是 2 的幂则与操作后 结果为0 ,异或后结果为俩个数的和
代码
bool isPowerOfTwo(int n) {
if(n<=0)
return false;
int tmp=n^(n-1);
return tmp==n+n-1;
}
代码2 :
bool isPowerOfTwo(int n) {
return n>0&&!(n&(n-1));
}
1 判断一个数 是否为2 的幂可以考虑 n&(n-1)或者n^(n-1)
2 如果是 2 的幂则与操作后 结果为0 ,异或后结果为俩个数的和
代码
bool isPowerOfTwo(int n) {
if(n<=0)
return false;
int tmp=n^(n-1);
return tmp==n+n-1;
}
代码2 :
bool isPowerOfTwo(int n) {
return n>0&&!(n&(n-1));
}
相关文章推荐
- 设计一个算法,判断给定的一棵二叉树是否是二叉排序树(二叉树的所有关键字均为正整数)
- T.array.contains判断一个数组中是否包含给定元素
- 【华为面试题】给定一个数字(整数),判断它是否回文
- 给定平面上的圆(圆心坐标和半径长度)和一个正方形(四个点的坐标)判断两者是否有交点。
- OC判断给定的指针是否是一个有效的NSObject对象
- leetcode动态规划之判断一个字符串是否是给定字符串数组组合出来的
- 在 Java 的多线程中,如何去判断给定的一个类是否是线程安全的(另外:synchronized 同步是否就一定能保证该类是线程安全的。)
- 写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。) 给定一个表达式A,请返回一个bool值,代表它是否合法。
- 判断一个给定的字符串通过循环移位是否可以包含另一个字符串
- C#实现判断一个时间点是否位于给定时间区间的方法
- 给定一个字符串,判断该字符串中是否包含某个子串.如果包含, 求出子串的所有出现位置
- C#判断一个给定的IP地址是否在指定的范围内
- 判断给定的点是否被一个CGRect包含
- 工具类:判断一个类是否是给定类的子类
- 6-7 统计某类完全平方数(20 分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
- 编写正则表达式,判断给定的是否是一个合法的IP地址。
- 给定一个链表,判断是否是回文
- 判断一个序列是否是另一个给定序列的弹出序列
- 编写正则表达式,判断给定的是否是一个合法的IP地址。
- 给定一个用户,获取其密码警告期限; 而后判断用户密码使用期限是否已经小于警告期限;