/* 程序问题注释开始
-
程序的版权和版本声明部分
-
Copyright © 2020,湖南工程职业技术学院信息工程学院学生
-
All rights reserved.
-
文件名称: 蓝桥杯赛题
-
作 者: 李 斌
-
完成日期: 2020 年 03月 21日
-
版 本 号: 005
-
对任务及求解方法的描述部分
-
问题描述:
用一条语句判断一个整数是不是2的整数次方。
-
程序问题注释结束
方法一
//与运算方法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner input=new Scanner(System.in);
//接受用户输入的数
System.out.println("请输入一个数:");
int number = input.nextInt();
//假设number是2的整数次方
boolean flag=true;
//判断是否是2的整数次方
if(((number-1)&number)!=0)
{
//不是2的整数次方
flag=false;
}
//输出
System.out.println(number+"是否是2的倍数:"+flag);
}
}
方法二
//遍历2的次方解法
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner input=new Scanner(System.in);
//接受用户输入的数
System.out.println("请输入一个数:");
int number = input.nextInt();
//假设number是2的整数次方
boolean flag=false;
//判断是否是2的整数次方
int number1=2;
while(number1<=number)
{
//判断是否相等
if(number==number1)
{
//是2的次方数
flag=true;
break;
}
//每次循环number1扩大2倍
number1*=2;
}
//输出
System.out.println(number+"是否是2的倍数:"+flag);
}
}
运行结果: