黑马程序员技术交流社区

标题: 10、 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要... [打印本页]

作者: 唐洪超    时间: 2015-12-16 15:45
标题: 10、 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要...
在资料里找的分享下
/**
* 10、 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,
* 够28人喝?假如是50人,又需要买多少瓶可乐?
(需写出分析思路)
        思路:
                1.该需求中拥有几个变量?一个是盖子的数目,一个是需要购买的可乐数目.
                一个是可以喝的可乐数.
                2.定义一个函数,接受一个int值,这个值就是我们需要满足多少人喝可乐.
                3.那么对于多少人和可乐,和买多少可乐之间如何产生联系呢?也就是,我们
                喝的可乐数,肯定< 可供喝可乐的数目.(如果等于就是够喝了,够喝了还需要计算吗?)
        总结:
                1.逻辑题目,就是考验人的一个逻辑分析能力,对于代码的需求并不高.
                2.既然是逻辑,那么你给了我什么,你需要我给你什么?就本题而言,客户
                给我一个满足多个人喝可乐的人数,而需求我返回我买多少可乐够他们喝.
                3.那么我们定义函数的时候,就应该把客户的需求做为一个参数传递进来,因为这个是他指定的,那么我就在返回值的时候给他返回一个他需要的购买数量.
                4.然后进入功能函数之后,我只有一个对方给定的一个人数,那么我要想,我如何能够让这个给定的人数与我的程序产生关联呢?
                5.我够买的数量是我要返回的值,那么怎么样我就需要购买呢?瓶盖够三个自然不用购买,那么谁会变化?自然是可以喝的可乐增加,瓶盖变成1;不够三个的话,我就要去买了,买了之后,可以喝的可乐就多了1,瓶盖也多1.
                6.当可以喝的可乐都和人数相等了,就不用再买了...但是这里为什么没有<=person呢?如果等于了,条件还满足,还要执行.都够喝了,执行还有意义吗?
               
                思考:
                        1.逻辑,逻辑,不行我就画画好吗?
                        2.不行我就把朋友兄弟都模拟参与进来可以吗?
                        3.逻辑练习需要一个过程,也急不得,多多的适应吧...
* */
public class Demo10 {
        public static void main(String[] args) {
       int person = 13;  //自定义需求.
       int cola = run(person); //接受需要购买的次数.
       System.out.println(cola);
   }
        public static int  run(int person) {
                int lid = 0;   //盖子数
                int cola = 0;   //可以喝的可乐数
                int gouMai = 0;  //需要购买的可乐数.
                for(;cola < person; cola ++)  //无论如何,可以喝的可乐都在增加.
                {
                        if(lid == 3)  //当盖子够三个了,盖子数又定义为一个.
                        {             //可以喝的可乐在上面已经增加了.
                                lid = 1;
                        }
                        else
                        {
                                gouMai ++;//如果不够三个,那么就要去买了,买一瓶,盖子自然增加一个.
                                lid ++;                                 
                        }
                }
                return gouMai;  //把购买的次数返回.
        }
}
需写出分析思路)





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