判断建立一个n 判断矩阵数是不是2的n次方,幂指数

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
如题。。。。有什么简单快速的方法吗
这里的数特指正整数
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。
如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1;因此将原来的数与去减去1后的数字进行与运算后会发现为零。
最快速的方法:
(number & number - 1) == 0
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你可以去这里尝试自己做做
完成以后还能看到别人提交的答案,有些可能会出乎你的意料。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
请问为什么我的实现最佳答案的js代码无法通过codewars的testing。。。
function isPowerOfTwo(n){
//.. should return true or false ..
return n & (n-1) == 0 ? true :
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
javaboolean isPowerOfTwo(int val) {
return (val & -val) ==
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。博客分类:
使用Java语言编写程序来判断一个整数是不是2的阶次方数,要求使用尽量快速简便的方法。
答:如果一个数是2的阶次方数,那么它的二进制数的首位一般是1,后面接若干位0。比如8就是00000。如果将这个数减1再与该数做&运算,则应该全部位都是0。所以如果一个数d,满足d&(d-1)==0,则这个数必定是可以被2的幂整除的数。
import java.util.S
public class Valid {
public static boolean doValid(int Number){
if((((Number-1)&Number)==0)&&Number!=0){
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.print("Input a number : ");
boolean result = Valid.doValid(s.nextInt());
if(result){
System.out.println("可以被2的幂整除!");
System.out.println("不可以被2的幂整除!");
YuHuang.Neil
浏览: 116223 次
来自: 北京
lz,我这里显示没有ip6config的命令。。。这个咋整啊
简单可测试的代码,言简意赅。
求第几大的数后还要给出其在原数组中的位置,你这个是不是还要再遍 ...
上面代码有些问题,可以与QQ:交流……
lo0 gif0 stf0 en0 en1 fw0 p2p0楼 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'如题,如何判断一个整数是否是2的N次方,我能想到的方法有两个
1.一直除2,看最后是否等于1.(最笨的方法)
2.转换成2进制,看是否是这个样子的:1,10,100,,就是除了最高位是1,其他都是0,或者说只有一个1.
3.当我还在为我能想到第二个方法而沾沾自喜的时候,我看到了下面这种更巧妙的方法
8(1000)为例
4 & 3 --& 100 & 011
7 & 6 --& 0111 & 0110
8 & 7 --& 1000 & 0111
即 如果 m & (m - 1) == 0,则m是2的n次方。
public static boolean fun(int i){
return (i & 0) && ((i & (i - 1)) == 0);
阅读(...) 评论()}

我要回帖

更多关于 判断级数1 n 的敛散性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信