把自己写的也贴上。
- /*
- * 需求: 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?
- * 假如是50人,又需要买多少瓶可乐?(需写出分析思路)
- * 思路:1,这个程序最重要的是分清可乐的瓶数和人数的关系,要求可乐的瓶数与人数的关系是相等的。
- * 2,可乐的瓶数来自于购买的可乐,和喝下可乐留下的盖子3换1获得的。
- * 步骤:1,从键盘输入要喝可乐的人数。
- * 2,设置一个While循环里面有三个变量gouMai代表买的可乐数,pingGai代表瓶盖数,keLe代表可乐的总数。
- * 当购买一瓶,gouMai++,pingGai++,keLe++。
- * 3,当pingGai的个数达到3的倍数的时候换取一个可乐,keLe++,把瓶盖数置为1
- * 4,需要注意一点,因为在进行一次循环的过程中,keLe++可能进行两次所以我们在进行每次keLe++的时候判断它是否和人数相等。
- */
- package com.itheima;
- import java.util.Scanner;
- public class Test10 {
- public static void main(String[] args) {
- Scanner input = null; //键盘录入
-
- try{
- input = new Scanner(System.in);
- System.out.println("请输入有多少个人喝可乐:");
-
- int renShu = input.nextInt();
- int num =keleNum(renShu);
- System.out.println("需要"+num+"瓶可乐才够"+renShu+"个人喝");
- }catch(Exception e) {
- System.out.println("输入非法,请输入数字");
- }
- finally
- {
- try
- {
- if (input != null)
- input.close();
- } catch (Exception e2)
- {
- System.out.println("关闭流失败");
- }
- }
- }
-
- private static int keleNum(int i) {
- // TODO Auto-generated method stub
-
- int keLe = 0,pingGai = 0,gouMai = 0;
- while (keLe!= i) {
-
-
- gouMai ++;
- keLe++;
- if(keLe == i)
- break;
- pingGai++;
- if(pingGai%3==0){
- pingGai = 1;
- keLe++;
- if(keLe == i)
- break;
- }
- }
-
- return gouMai;
- }
- }
复制代码 |