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; //把购买的次数返回.
}
}
|
|