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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 房东告诉对方 中级黑马   /  2015-7-15 16:07  /  345 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;
/**
* 28人买可乐喝,
* 3个可乐瓶盖可以换一瓶可乐,
* 那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
* @author Administrator
* 思路: (这里只考虑实现,不考虑算法的效率)
*        3个瓶盖换一瓶可乐,也就是当手中瓶盖数量为3时,
*         可以让 饮用人的数量加一,手中瓶盖数量变成1
* 实现:定义3个变量,第一个boottle 表示购买的瓶数 从0开始,
*                             第二个 bottleCap 表示手机从0开始,当手中瓶盖数为3时,马上去换,换后bottleCap置为1,饮用人数加1
*                             第三个变量 people表示喝到可乐的人数量
*/
public class Test10 {

    public static void main(String[] args) {
        System.out.println( "需要28个人喝时 得购买"+method(28) );
        System.out.println( "需要50个人喝时 得购买"+method(50) );
    }
    /**
     *
     * @param people 需要让喝到可乐的人的数量
     * @return
     */
    public static int method(int people){
        //初始化购买的瓶数
        int boottle =0;
        //初始话当前手中的瓶盖数
        int bottleCap = 0;
        //初始化喝到可乐的人数
        int drinker =0;
        for(int i=1;i<people;i++){
            //购买的瓶数+1
            boottle++;
            //喝到的人数+1
            drinker++;
            //当前手中的瓶盖数
            bottleCap++;
            //如果手中瓶盖数为3,立即调换
            if(bottleCap==3){
                //调换之后,手中瓶盖数为1
                bottleCap=1;
                //饮用人数+1
                drinker++;
            }
//            System.out.println("购买"+boottle+"杯时可以够"+drinker+"个人喝");
            //如果喝到的人数等于需要的人数,退出循环
            if(drinker==people)
                break;
        }
        //输出需要购买的瓶数
        return boottle;
        
    }
}


2 个回复

倒序浏览
赞赞
回复 使用道具 举报
赞一个!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马