java面试题10个箱子600个苹果

import java.util.Scanner;

public class Apple2 {

	public static void main(String[] args) {

		int apple = 0;
		int[] box = new int[10];
		int apples = 600;
		for (int i = 0; i < box.length - 1; i++) {// 初始化每个箱子:放0个苹果

			box[i] = apple;
			apple = apple * 2;

		}

		box[9] = apples - apple;

		int math = 0;// 想要的苹果个数

		boolean lab = false;// 是否大于600
		boolean lastbox = false;// 是否要最后一个箱子

		while (lab == false) {

			try {
				System.out.println("请输入0-600之间的数字 ");
				Scanner input = new Scanner(System.in);
				math = input.nextInt();
				if (math > 600) {
					lab = false;
				} else {
					lab = true;
				}
			} catch (RuntimeException e) {

				lab = false;
			}

		}

		if (math > 511) {
			math = math - 89;
			lastbox = true;
		}
		String bin = Integer.toBinaryString(math);// 把整数转化成二进制数,每个位对应是否取第几个箱子
		char[] bina = bin.toCharArray();
		for (int i = 0; i < bina.length; i++) {

			if ("1".equals(bina[i] + "")) {
				System.out.print(bina.length - i + "号箱子    ");
			}

		}
		if (lastbox == true)

		{
			System.out.print("10号箱子    ");
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值