黑马程序员技术交流社区

标题: 可乐问题求解 [打印本页]

作者: myworkspace    时间: 2015-10-27 22:50
标题: 可乐问题求解
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?
作者: gih146    时间: 2015-10-27 23:49
以后遇到此类问题,一定要在纸上用手画画,从实际问题中抽象出可行的算法
package com.itheima;

// 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?
public class Cola {
        public static void main(String[] args) {
                System.out.println("够28人喝,要买" + getColaNUM(28) + "瓶可乐");
                System.out.println("够50人喝,要买" + getColaNUM(50) + "瓶可乐");
        }

        // 此方法根据目前的瓶子数,得出可乐可供多少人喝
        static int colaNum(int bottleNum) {
                int sum = bottleNum;// 总共瓶子数
                int shang;// 可兑换瓶子数
                int yu;// 剩余瓶子数
                int now = bottleNum;// 目前瓶子数
                // 当瓶子数的时候,直接买人数对应的可乐数,否则执行下面循环
                while (now >= 3) {
                        shang = now / 3;// 可兑换数
                        yu = now - 3 * shang;// 剩余数
                        sum += shang;// 总数
                        now = shang + yu;// 现在数
                }
                return sum;
        }

        // 此方法根据人数,得出需要买的可乐瓶数
        static int getColaNUM(int n) {
                int num = 0;
                // 遍历,得出需购可乐瓶数
                while (colaNum(num) < n) {
                        num++;
                }
                return num;
        }
}  // 代码是在论坛里看到的,本身没有学习到这个阶段,随手复制一份,给你个思路。




作者: Frank0601    时间: 2015-10-27 23:52
21瓶够28人喝,50人要买38瓶




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2