如何判断一个数是2的N次方?小鸟寻求高手帮组~~!!
我是个初学者 大家帮忙下。。
3Q~~
我是个初学者 大家帮忙下。。
3Q~~
解决方案 »
- zhao251021539 进来给你分
- Java UDP多播的问题
- 关于数组并的操作
- comparable和Comparator区别,怎么用?望高手指教.
- 我的applet里面为什么弹不出窗口啊?在Jbuilder中运行,就能弹出来。为什么?下面是代码。
- 大放分(2)给点建议
- 如何移动JTextArea里面的光标?
- 求各种操作系统下的发送邮件的命令(每个20分,不够另加)
- 谁讲讲turbine?
- 编写一个方法,类似HashMap里的putAll()方法,大家帮忙看看我写putAll方法哪里有问题?应该怎么写?
- 花几分钟帮忙一个SWING的JOptionPane问题。
- 标记上具有语法错误,错误放置了构造
for($i=2;$i<=$a;$i=$i*2)
{
if ($a==$i) echo "yes";
}
int n = 122;
int iTemp = n;
boolean bFlg = true;
for (int i = 1; i <= n / 2; i*2){
if (iTemp%2 == 1) {
bFlg = false;
break;
} else {
iTemp = iTemp / 2;
}
}
你试试吧
return false;
public class PanDuan {
public static double JiSuan(double n)
{
double x;
x = n/2;
if(x>=3)
x = JiSuan(x);
return (x);
}
public static void main(String[] args)
{
double m,y;
System.out.println("请输入所需判断的数字:");
Scanner reader = new Scanner(System.in);
m = reader.nextDouble();
if(m == 2)
System.out.println("该数是2的n次方");
else
{
y = JiSuan(m);
if(y == 2)
System.out.println("该数是2的n次方");
else
System.out.println("该数不是2的n次方");
}
}
}
i是什么类型的,怎具体怎么写啊?我用scanner写怎么都不对啊?
正整数都成立。short、int、long类型都可以。
//N是负数的情况我没考虑
public static boolean check(int n){
boolean flag = false;
int i = 2;
if((i >> 1) == n){
flag = true;
}else{
while(i <= n){
if(i == n){
flag = true;
break;
}
i = i << 1;
}
}
return flag;
}
* [简要说明] 判断一个数是否是2的n次幂
* [详细说明] 判断一个数是否是2的n次幂,如果是返回ture,如果不是返回false
* @param num
* @return
*/
public boolean judgePower (int num)
{
if (num%2 == 0 && num != 0)
{
return true;
}
return false;
}
/**
* [简要说明] 判断一个数是否是2的n次幂
* [详细说明] 判断一个数是否是2的n次幂,如果是返回ture,如果不是返回false
* @param num
* @return
*/
public boolean judgePower (int num)
{
if (num%2 == 0 && num != 0)
{
return true;
}
return false;
}
* 找不到最快的最好的,我是这样做的 [简要说明] 判断一个数是否是2的n次幂 [详细说明]
* 判断一个数是否是2的n次幂,如果是返回ture,如果不是返回false
*
* @param num
* @return
*/
public boolean judgePower(int num) {
if (num < 1)
return false;
while (num > 2) {
if (num % 2 == 1)
return false;
else
num = num / 2;
}
return true;
}
public void testNegative(){
assertFalse(judgePower(-1));
}
public void testZero(){
assertFalse(judgePower(0));
} public void testTrue(){
assertTrue(judgePower(1));
assertTrue(judgePower(2));
assertTrue(judgePower(4));
assertTrue(judgePower(8));
assertTrue(judgePower(16));
assertTrue(judgePower(32));
}
public void testF(){
assertFalse(judgePower(3));
assertFalse(judgePower(5));
assertFalse(judgePower(6));
assertFalse(judgePower(7));
assertFalse(judgePower(9));
assertFalse(judgePower(10));
}
2)代码:
return ((num & (num - 1)) == 0) ? true : false;