这是在http://okruby.com/ruby-wenzhai/200901/27_551.html上面看到的一个题目,就写了一下。暂时就只想到这样做了,也许还有更好的算法。
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
int temp = 1;
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
while(true)
{
if(temp < n)
temp<<=1; //相当于temp = temp * 2;
else if(temp > n)
{
System.out.println("该数不是2的乘方!");
break;
}
else
{
System.out.println("该数是2的乘方!");
break;
}
}
}
}