文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>一简单的算法题目,欢迎大家提出更高效的解决办法.................

一简单的算法题目,欢迎大家提出更高效的解决办法.................

时间:2011-03-03  来源:grayboy

刚要解答的时候,面试官来了,就没写,现在写在这里,和大家讨论下!

题目:给定一个整数num,判断这个整数是否是2的N次方

比如,2,4,8是2的那次方,6,10不是2的N次方

我的解决方法:

1)不断的循环temp=2*2*2*2......*2,当某次temp==num是可确定是2的N次方,

public static bool Check(int num)
{
if (num == 2)
return true;
int n = 2;
while (true)
{
n
= 2 * 2;
if (n > num)
return false;
if (n == num)
return true;
}

}

 2)不断的循环num%2,如果不等于0,return false,如果等于0,num=num/2,一直做到num=1

public static bool Check2(int num)
{
do
{
if (num % 2 == 0)
num
= num / 2;
else
return false;
}
while (num != 1);
return true;
}

其实这两种算法的思路都是相同的,但是第二种相对第一种更高效写,因为如果不是2的N次方,可以少循环很多次!

大家有更高效的算法请赐教!

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载