A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© myworkspace 中级黑马   /  2015-10-27 22:50  /  323 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?

2 个回复

倒序浏览
以后遇到此类问题,一定要在纸上用手画画,从实际问题中抽象出可行的算法
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;
        }
}  // 代码是在论坛里看到的,本身没有学习到这个阶段,随手复制一份,给你个思路。



回复 使用道具 举报
21瓶够28人喝,50人要买38瓶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马