【Java】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 + "个可乐!");
}
}
每日学习,感谢大哥:keai 大哥第一种方法出来的正确吗 27人的时候第一种方法就错了 gentledream 发表于 2020-11-15 22:34
每日学习,感谢大哥
第一种错了,没有考虑周全,当所有的可乐数模除3等于0 时 , 表示已经没有空瓶子能兑换可乐了 所以要在买一瓶/**
* 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 + "个可乐!");
}
}
amose 发表于 2020-11-15 23:13
27人的时候第一种方法就错了
感谢指正!{:1_893:}
/**
* 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 + "个可乐!");
}
}
gentledream 发表于 2020-11-15 22:53
大哥第一种方法出来的正确吗
没有考虑周全,已经修改,感谢指正!
/**
* 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 + "个可乐!");
}
}
页:
[1]