28人买可乐喝,3个可乐瓶盖可以换一瓶可乐

时间:2021-11-13 11:08:34

import java.util.Scanner;

public class Test10 {

/**
* 10、28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?
* 假如是50人,又需要买多少瓶可乐?(需写出分析思路)
*/
/**
* 思路:
* 1.键盘录入人数
* 2.人数作为参数,传给getNum()方法
* 3.getNum()方法 计算总可乐数
* 循环条件为:拥有可乐人数是否到达输入的总人数
* 首先判断 cap瓶盖是否为3,若为3,拥有可乐的人数加1,瓶盖赋值为1,注:在此可乐数不用加1
* 否则,可乐加1,人数加1,瓶盖加1
* 返回总可乐数量。
* 结果:
* 28人总共需要购买 19 瓶可乐
* 50人总共需要购买 34 瓶可乐
*/
public static void main(String[] args) {
//键盘录入总人数
Scanner sc = new Scanner(System.in);
System.out.println("请输入总人数:");
int personNum = sc.nextInt();
//自定义方法,将录入的人数作为参数传递,计算需要的总可乐数
int cola = getNum(personNum);
//打印输出最终可乐瓶数
System.out.println(personNum +"人总共需要购买 "+cola +" 瓶可乐!");
}
/**
* 自定义方法:根据总人数计算需要购买的总可乐数
* @param personNum 总人数,作为循环的截止条件
* @return int cola(总可乐瓶数)
*/
public static int getNum(int personNum) {

int cola = 0; //初始购买可乐瓶数为0
int cap = 0; //初始瓶盖数为0
int person = 0; //初始拥有可乐的人数为0
//循环计算总可乐数量
while(person < personNum){ //已拥有可乐的人数person小于总人数personNum时 循环
if (cap == 3){ //if判断瓶盖数量是否为3,若为3,则可兑换一瓶可乐,此时拥有可乐人数加1,瓶盖赋值为1
person++;
cap = 1;
}else { //否则,购买一瓶可乐,即可乐加1,人数加1,瓶盖加1
cola++;
cap++;
person++;
}
}
return cola; //返回总可乐数
}

}