黑马程序员技术交流社区

标题: 瓶盖问题 [打印本页]

作者: 房东告诉对方    时间: 2015-7-15 16:07
标题: 瓶盖问题
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;
        
    }
}



作者: 耀阳圣尊    时间: 2015-7-15 16:45
赞赞
作者: 汪磊の    时间: 2015-7-15 17:00
赞一个!!




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