黑马程序员技术交流社区

标题: 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,需要买多少瓶... [打印本页]

作者: 怪人长    时间: 2016-3-24 23:14
标题: 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,需要买多少瓶...
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?
  1. public class Test10 {
  2.         /*
  3.          *
  4.          * 分析:
  5.          * 1.变量的分析:若一次购买一瓶可乐,则购买次数即购买可乐的瓶数,记为 count;
  6.          *                          因为一人一瓶可乐,所以手里剩下的可乐数即够喝的人数,记为  p;
  7.          *                         还有一个关键变量,即瓶盖的数量,记为  k;
  8.          * 2.过程的分析:假设我们一瓶一瓶的不停的购买可乐,每次购买计数增加1,当拥有3个瓶盖时,满足条件兑一瓶可乐(注意兑的这一瓶也是有瓶盖的),
  9.          *                         继续购买可乐,再次拥有3个瓶盖时,又满足条件再去兑一瓶,如此下去一直到可乐数量够28个的时候就停止购买。
  10.          * 3.条件的分析:每次购买一瓶可乐当做循环一次,count+1,当满足兑换条件时,即当瓶盖 k=3 时,兑换一瓶可乐,这时候k重置为1,
  11.          *                         可乐数量p+1,然后继续循环,直到可乐数量 p=28,跳出循环;
  12.          */
  13.         public static void main(String[] args) {
  14.                 int count = 0;                        // 总共买的可乐数
  15.                 int p = 0;                                // 够喝的人数
  16.                 int k = 0;                                // 瓶盖数
  17.                
  18.                 do {                                        //用循环模拟买可乐的过程
  19.                         count++;
  20.                         p++;                                //够喝的人数增加1
  21.                         k++;                                //可乐数增加1
  22.                         if (k == 3 ) {                //判断,有三个瓶盖的话就去换一瓶可乐!
  23.                                 p++;                        //可乐数增加1
  24.                                 k = 1;                        //瓶盖数变为1
  25.                         }
  26.                 }while(p < 28);//可乐数达到要求的话就跳出循环
  27.                 System.out.println("够28人喝需要买的可乐瓶数为:" + count);
  28.         }
  29. }
复制代码





作者: Gqg    时间: 2016-3-25 00:18

java中一般不用do while 吧
作者: 怪人长    时间: 2016-3-25 00:31
Gqg 发表于 2016-3-25 00:18
java中一般不用do while 吧

可以用的,怎么方便、容易理解就可以用。
作者: Gqg    时间: 2016-3-25 00:34
受教了{:3_53:}
作者: 怪人长    时间: 2016-3-25 00:39
Gqg 发表于 2016-3-25 00:34
受教了

共同进步
作者: guyulei    时间: 2016-3-25 14:56
楼主怎么遇到的题目呀?我在自学中,没看见这样的题目
作者: 怪人长    时间: 2016-3-26 23:55
guyulei 发表于 2016-3-25 14:56
楼主怎么遇到的题目呀?我在自学中,没看见这样的题目

这个是入学考试题目
作者: huhemingtiancai    时间: 2016-3-27 00:04
这是在干什么
作者: 怪人长    时间: 2016-3-27 00:13
huhemingtiancai 发表于 2016-3-27 00:04
这是在干什么

这是考试流程中遇到的题目哟,为了部落!
作者: 赵国政    时间: 2016-3-27 00:44
酷酷酷!
作者: 多情浪子    时间: 2016-3-27 08:19
大哥,你这个我晕了,赶紧去技术区哪里问啊,这里人们水平不行啊
作者: luomoss    时间: 2016-3-27 17:19
我想问下,有没有考虑过如果只剩下2个瓶子,也是可以换一瓶可乐的?
作者: huhemingtiancai    时间: 2016-3-28 07:53
怪人长 发表于 2016-3-27 00:13
这是考试流程中遇到的题目哟,为了部落!

我是联盟,而且这题很简单那!!!
作者: 1294668228    时间: 2016-3-28 10:40
考试题?
作者: 菊花爆满山    时间: 2016-3-28 12:24
我也遇到了这题,不知道你有没有遇到阿拉伯数字转换成中文的题目
作者: lennycxy    时间: 2016-3-28 16:27
路过的,看下
作者: 怪人长    时间: 2016-3-28 23:04
菊花爆满山 发表于 2016-3-28 12:24
我也遇到了这题,不知道你有没有遇到阿拉伯数字转换成中文的题目

这个真没遇到过呢
作者: maikly    时间: 2016-3-28 23:34
luomoss 发表于 2016-3-27 17:19
我想问下,有没有考虑过如果只剩下2个瓶子,也是可以换一瓶可乐的?

如果只剩下2个瓶子,加上最后一个人的刚好够换1瓶,也就是就是够29人喝。但是如果只剩下1个瓶子,不继续买1瓶的话,就只够27人喝了。代码我看没问题... ...
作者: ck1993    时间: 2016-3-29 00:11
可以用递归做哦
作者: LiuLiu006    时间: 2016-3-29 00:13
完全看不懂





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