搜索
您的当前位置:首页正文

【java华为机试】HJ22 汽水瓶

来源:易榕旅网

描述

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是 5 瓶,方法如下:先用 9 个空瓶子换3瓶汽水,喝掉 3 瓶满的,喝完以后 4 个空瓶子,用 3 个再换一瓶,喝掉这瓶满的,这时候剩 2 个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用 3 个空瓶子换一瓶满的还给老板。如果小张手上有 n 个空汽水瓶,最多可以换多少瓶汽水喝?

数据范围:输入的正整数满足 1 \le n \le 100 \1≤n≤100

注意:本题存在多组输入。

允许如题面所述向老板借汽水。

输入的 0 仅表示输入结束,并不用输出结果

输入描述:

输入文件最多包含 10 组测试数据,每个数据占一行,仅包含一个正整数 n( 1<=n<=100 ),表示小张手上的空汽水瓶数。n=0 表示输入结束,你的程序不应当处理这一行。

输出描述:

对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

import java.util.Scanner;
/**
 * 描述
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是 5 瓶,方法如下:先用 9 个空瓶子换3瓶汽水,喝掉 3 瓶满的,喝完以后 4 个空瓶子,用 3 个再换一瓶,喝掉这瓶满的,这时候剩 2 个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用 3 个空瓶子换一瓶满的还给老板。如果小张手上有 n 个空汽水瓶,最多可以换多少瓶汽水喝?

数据范围:输入的正整数满足 

注意:本题存在多组输入。
允许如题面所述向老板借汽水。
输入的 0 仅表示输入结束,并不用输出结果
输入描述:
输入文件最多包含 10 组测试数据,每个数据占一行,仅包含一个正整数 n( 1<=n<=100 ),表示小张手上的空汽水瓶数。n=0 表示输入结束,你的程序不应当处理这一行。

输出描述:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

* 项目名称:MyTest  
* 类名称:Main  
* 类描述:
* 创建人:jinL 
* 创建时间:2021年12月16日 下午8:47:52  
* 修改人:jinL  
* 修改时间:2021年12月16日 下午8:47:52  
* 修改备注:
* @version   
*
 */
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNextInt()) {
			int num = sc.nextInt();
			if(1 <= num && num <= 100) {
				System.out.println(Main.drinkSoda(num));
			}else {
				break;
			}
		}

	}
	public static int drinkSoda(int num) {
		int count = 0;
		while(num > 0) {
			if(num >= 3) {
				num-=3;
				count++;
				num++;
			}else if(num == 2) {
				count++;
				num = num + 1 -3;
				break;
			}else {
				break;
			}
		}
		return count;
		
	}

}

输出:

1
5
40

因篇幅问题不能全部显示,请点此查看更多更全内容

Top