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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 嘿~~ 中级黑马   /  2014-10-16 13:52  /  1143 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.Scanner;
  2. class  Coca
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 Scanner sc = new Scanner(System.in);
  7.                 //从键盘录入人数,方便查询不同人数所需要购买的瓶数
  8.                 System.out.println("输入人数:");
  9.                 int in = sc.nextInt();
  10.                 if(in<3){
  11.                         System.out.println("需要购买"+in+"瓶");
  12.                         return;
  13.                 }
  14.                 for (int x = in/3;x<in ; x++)
  15.                 {
  16.                         //原瓶数和兑换的瓶数之和
  17.                         int amount = x + getNum(x);
  18.                         if(amount<in)
  19.                                 //如果不满足每人一瓶就继续判断
  20.                                 continue;
  21.                         System.out.println("需要购买"+x+"瓶");
  22.                         break;
  23.                 }               
  24.         }
  25.         public static int getNum(int num){
  26.                 if(num>=3){
  27.                         //可以兑换的瓶数,不包含原瓶数
  28.                         return num/3 + getNum(num/3+num%3);       
  29.                 }
  30.                 //剩余不足3瓶,无法换取,不计数
  31.                 return 0;       
  32.         }
  33. }
复制代码

题目:28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?如果是50人,要买多少瓶?





4 个回复

倒序浏览
你这算法明显不对嘛   28个人的时候还行,50个人的时候就错了!!
回复 使用道具 举报
裙下之臣 发表于 2014-10-17 09:27
你这算法明显不对嘛   28个人的时候还行,50个人的时候就错了!!

不好意思眼花看错了    算法还是对了,挺不错的
回复 使用道具 举报
完整的看完了
回复 使用道具 举报

多谢支持
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马