【蓝桥杯】2的整数次方(Java实现)


/* 程序问题注释开始

  • 程序的版权和版本声明部分

  • 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);
	}

}

运行结果:
运行结果

发布了46 篇原创文章 · 获赞 1 · 访问量 813

猜你喜欢

转载自blog.csdn.net/qq_46354133/article/details/105009816
今日推荐