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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Johnny_Hu 于 2015-4-30 09:55 编辑

  1. public class Coke {

  2.     /*
  3.      * 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐?
  4.      */
  5.     public static void main(String[] args) {
  6.         coke(50);
  7.     }

  8.     public static void coke(int num) { // 用于计算兑换的可乐瓶数
  9.         int count = 0;
  10.         // 总共要购买的可乐数
  11.         int sum = 0;
  12.         while (sum<num)
  13.         {
  14.             if (sum != num)
  15.             {
  16.                 ++sum;
  17.                 if (sum % 3 == 0)
  18.                 {
  19.                     count++;
  20.                 }
  21.                 sum += count;
  22.             }
  23.             else
  24.             {                        
  25.                 break;
  26.             }
  27.         }
  28.         System.out.println(sum - count);
  29.     }
  30. }

复制代码

3 个回复

倒序浏览
本帖最后由 Johnny_Hu 于 2015-4-30 09:56 编辑

我算出来 居然是45瓶   

请问哪里出错了呢
回复 使用道具 举报
看楼主代码似乎表示
sum  是一共要买的瓶数
count  是能换取的瓶数
如果是这样我认为楼主思路上有两个地方有点问题
第一:楼主只计算了我第一次买可乐时的瓶盖数,却没有计算换来的可乐的瓶盖数,
代码体现在
if (sum % 3 == 0)
                {
                    count++;
                }
第二:楼主的这一条语句是以什么为标准?
       if (sum != num)
sum ! = num
是要表示买的瓶数不等于要求的瓶数??
这条判断我不明白。。
回复 使用道具 举报
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int c= countCoke(28);
  6.                 int c1= countCoke(50);
  7.                 System.out.println("c="+c);
  8.                 System.out.println("c1="+c1);
  9.         }
  10.         public static int countCoke(int num)
  11.         {
  12.                 int count = 0;//定义count来存储买的可乐数
  13.                 int bollte=0;//定义bollte数来存储瓶盖数
  14.                 while (num>0)
  15.                 {
  16.                         count++;
  17.                         bollte++;
  18.                         num--;//
  19.                         if (bollte==3)
  20.                         {
  21.                                 bollte=1;
  22.                                 num--;
  23.                         }
  24.                 }
  25.                 return count;
  26.         }
  27. }
复制代码


三个瓶盖换一瓶可乐-->有一人不用买,并且还多了一个瓶盖,每买一瓶人数减一,循环直到所有人都喝到为止
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马