当前位置:首页 >  开发者 >  LintCode练习:2826·数字2的朋友

LintCode练习:2826·数字2的朋友

题目来源:LintCode运算符练习参考代码:1publicstaticbooleanisFriend(intn){2if(n%2!=0){//奇数去掉1之后的偶数必须是2的幂次方才能返回true

题目来源:LintCode运算符练习

参考代码:

 1 public static boolean isFriend(int n) {
 2         if(n % 2 != 0){ // 奇数 去掉1之后的偶数必须是2的幂次方才能返回true
 3             n -= 1;
 4             while(n % 2 == 0)
 5                 n/=2;
 6             if (n == 1)
 7                 return true;
 8             else
 9                 return false;
10         }
11         int nc = n;  // 偶数 需满足2^x+2^y,且x!=y,才返回true
12         for(int i=1;;i++){
13             n = nc;
14             int n1 = (int) Math.pow(2,i);  // 判断第一个加数n1=2^i时,下一个加数n-2^i是不是2的幂次方
15             if(n1*2 == n) // x!=y
16                 return false;
17             n -= n1;
18             int j = 0; // j用途:防止出现n=2^x的情况,虽然前面的if语句可以防止,但是只有在某一个i才可能阻止误判
19             if(n <= 0) // 若一直找不到合适的加数,返回False,此处可继续优化
20                 return false;
21             while(n % 2 == 0){
22                 n /= 2;
23                 j++;
24             }
25             if(j != i && n == 1)
26                 return true;
27         }
28     }

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,
如果涉及侵权请联系站长邮箱:support@yingtwo.com 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:none

最近更新

超级女英雄哪个厉害
超级女英雄哪个厉害

漫威中有数不清的超级英雄,而在我们讨论最强大的...

台电平板屏幕多少钱
台电平板屏幕多少钱

尊敬的台电用户:您好,X80HD的外屏是120...

嘉实多和昆仑哪个好
嘉实多和昆仑哪个好

你好!嘉实多机油是业界最好的,比昆仑机油贵很多...

68.C++中的const
68.C++中的const

编写程序过程中,我们有时不希望改变某个变量的值...

封神榜哪个版本游戏
封神榜哪个版本游戏

PC上的荡神志、刀剑封魔录、封神榜之英雄无敌P...

硬盘怎么清洁
硬盘怎么清洁

给笔记本电脑硬盘清理灰尘的方法如下:1、用螺丝...

410m和7670哪个好
410m和7670哪个好

首先三款笔记本的处理器都是i52450m,内存...

手机2k17乔丹怎么获得
手机2k17乔丹怎么获得

NBA2k17选择乔丹先创建MC人物,打三局大...

多态、抽象类、接口练习:愤怒的小鸟
多态、抽象类、接口练习:愤怒的小鸟

需求说明:模拟实现愤怒的小鸟,定义鸟叫的接口,...

使用taro+canvas实现微信小程序的图片分享功能
使用taro+canvas实现微信小程序的图片分享功能

业务场景二轮充电业务中,用户充电完成后在订单详...