吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 969|回复: 6
收起左侧

[已解决] 【Java】Java初级算法基础 ,"可乐瓶数"问题

[复制链接]
WooYun 发表于 2020-11-15 21:50
[Java] 纯文本查看 复制代码
/**
 * 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐, 那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐?
 *
 */
public class Cola {

	public static void main(String[] args) {
		//第一种方法:
		colaFirstMethod(28);
		colaFirstMethod(50);
		System.out.println("--------------华丽的分割线--------------");
		//第二种方法:
		colaSecondMethod(28);
		colaSecondMethod(50);

	}

	private static void colaFirstMethod(int man) {
		int colaCount = man - man / 3; //总瓶数减去可以换的瓶数得到只需要购买的可乐数量
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
		
		
	}

	public static void colaSecondMethod(int man) {
		int drinkCount = 0;//记录喝掉的可乐数量,起始为0
		int emptyBottle = 0;//记录喝掉之后的空瓶子,起始为0
		int colaCount = 0;// 一共需要多少瓶可乐,起始为0
		while (drinkCount < man) {
			colaCount++;// 需要一瓶可乐拿来喝掉
			drinkCount++;// 计录喝的可乐数量
			emptyBottle++;// 计算空瓶子
			if (emptyBottle == 3) // 3个空瓶子换一瓶可乐
			{
				drinkCount++;// 再喝掉
				emptyBottle = 1;// 空瓶子又多了一个了!
			}
		}
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
	}
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
gentledream + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

gentledream 发表于 2020-11-15 22:34
每日学习,感谢大哥
gentledream 发表于 2020-11-15 22:53
amose 发表于 2020-11-15 23:13
 楼主| WooYun 发表于 2020-11-16 01:49
gentledream 发表于 2020-11-15 22:34
每日学习,感谢大哥

第一种错了,没有考虑周全,当所有的可乐数模除3等于0 时 , 表示已经没有空瓶子能兑换可乐了 所以要在买一瓶
[Java] 纯文本查看 复制代码
/**
 * 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐, 那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐?
 *
 */
public class Cola {

	public static void main(String[] args) {
		//第一种方法:
		colaFirstMethod(27);
		colaFirstMethod(50);
		System.out.println("--------------华丽的分割线--------------");
		//第二种方法:
		colaSecondMethod(27);
		colaSecondMethod(50);

	}

	private static void colaFirstMethod(int man) {
		
		int colaCount = man - man / 3; //总瓶数减去可以换的瓶数得到只需要购买的可乐数量
		if(man% 3 == 0) { //条件成立时 表示没有空瓶子可以兑换可乐了 
			colaCount += 1;//需要在买一瓶
		}
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
		
		
	}

	public static void colaSecondMethod(int man) {
		int drinkCount = 0;//记录喝掉的可乐数量,起始为0
		int emptyBottle = 0;//记录喝掉之后的空瓶子,起始为0
		int colaCount = 0;// 一共需要多少瓶可乐,起始为0
		while (drinkCount < man) {
			colaCount++;// 需要一瓶可乐拿来喝掉
			drinkCount++;// 计录喝的可乐数量
			emptyBottle++;// 计算空瓶子
			if (emptyBottle == 3) // 3个空瓶子换一瓶可乐
			{
				drinkCount++;// 再喝掉
				emptyBottle = 1;// 空瓶子又多了一个了!
			}
		}
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
	}
}
 楼主| WooYun 发表于 2020-11-16 01:50
amose 发表于 2020-11-15 23:13
27人的时候第一种方法就错了

感谢指正!
[Java] 纯文本查看 复制代码
/**
 * 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐, 那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐?
 *
 */
public class Cola {

	public static void main(String[] args) {
		//第一种方法:
		colaFirstMethod(27);
		colaFirstMethod(50);
		System.out.println("--------------华丽的分割线--------------");
		//第二种方法:
		colaSecondMethod(27);
		colaSecondMethod(50);

	}

	private static void colaFirstMethod(int man) {
		
		int colaCount = man - man / 3; //总瓶数减去可以换的瓶数得到只需要购买的可乐数量
		if(man% 3 == 0) { //条件成立时 表示没有空瓶子可以兑换可乐了 
			colaCount += 1;//需要在买一瓶
		}
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
		
		
	}

	public static void colaSecondMethod(int man) {
		int drinkCount = 0;//记录喝掉的可乐数量,起始为0
		int emptyBottle = 0;//记录喝掉之后的空瓶子,起始为0
		int colaCount = 0;// 一共需要多少瓶可乐,起始为0
		while (drinkCount < man) {
			colaCount++;// 需要一瓶可乐拿来喝掉
			drinkCount++;// 计录喝的可乐数量
			emptyBottle++;// 计算空瓶子
			if (emptyBottle == 3) // 3个空瓶子换一瓶可乐
			{
				drinkCount++;// 再喝掉
				emptyBottle = 1;// 空瓶子又多了一个了!
			}
		}
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
	}
}
 楼主| WooYun 发表于 2020-11-16 01:51
gentledream 发表于 2020-11-15 22:53
大哥第一种方法出来的正确吗

没有考虑周全,已经修改,感谢指正!
[Java] 纯文本查看 复制代码
/**
 * 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐, 那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐?
 *
 */
public class Cola {

	public static void main(String[] args) {
		//第一种方法:
		colaFirstMethod(27);
		colaFirstMethod(50);
		System.out.println("--------------华丽的分割线--------------");
		//第二种方法:
		colaSecondMethod(27);
		colaSecondMethod(50);

	}

	private static void colaFirstMethod(int man) {
		
		int colaCount = man - man / 3; //总瓶数减去可以换的瓶数得到只需要购买的可乐数量
		if(man% 3 == 0) { //条件成立时 表示没有空瓶子可以兑换可乐了 
			colaCount += 1;//需要在买一瓶
		}
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
		
		
	}

	public static void colaSecondMethod(int man) {
		int drinkCount = 0;//记录喝掉的可乐数量,起始为0
		int emptyBottle = 0;//记录喝掉之后的空瓶子,起始为0
		int colaCount = 0;// 一共需要多少瓶可乐,起始为0
		while (drinkCount < man) {
			colaCount++;// 需要一瓶可乐拿来喝掉
			drinkCount++;// 计录喝的可乐数量
			emptyBottle++;// 计算空瓶子
			if (emptyBottle == 3) // 3个空瓶子换一瓶可乐
			{
				drinkCount++;// 再喝掉
				emptyBottle = 1;// 空瓶子又多了一个了!
			}
		}
		System.out.println(man + "人需要买" + colaCount + "个可乐!");
	}
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表