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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我脑子有点糊了。
回复 使用道具 举报
本人的解决办法请笑纳。
  1. import java.io.*;
  2. class CocaCola
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {

  6.                 //调用读键盘函数读取输入的人数,并调用获取要买可乐的数量。
  7.                 readKey();
  8.                

  9.         }
  10.         public static void readKey()throws IOException{
  11.                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(System.in));

  12.                 String str = null;
  13.                 while((str = bufIn.readLine())!=null){
  14.                         if(str.equals("over")){
  15.                                 break;
  16.                         }
  17.                         int colaNum = getColaNum(Integer.parseInt(str));

  18.                         System.out.println("需要买几瓶呢?== " + colaNum);
  19.                 }
  20.         }
  21.         public static int getColaNum(int person){
  22.                 //在人手中的盖子数。
  23.                 int cap = 0;
  24.                 //可乐数。
  25.                 int bottle = 0;
  26.                 //花钱买的可乐瓶数。
  27.                 int colaNum =0;
  28.                 //最终的可乐数为person人数或者person人数加1。
  29.                 //因为如果出现瓶数比人数多1瓶以上就意味着,人们手中同时有6个瓶盖,按3个瓶盖一瓶饮料算,人们手中的瓶盖数只能是0,1,2.
  30.                 while(bottle<person){
  31.                                 //开始是0,先买。
  32.                                 cap++;
  33.                                 bottle++;
  34.                                 colaNum++;
  35.                                 System.out.println("买后:"+"cap==" + cap + "bottle==" + bottle + "colaNum==" + colaNum);
  36.                         if(!(cap>=0 && cap<3)){
  37.                                 System.out.println("买后瓶盖数超过2个:"+"cap==" + cap + "bottle==" + bottle + "colaNum==" + colaNum);
  38.                                 cap=1;
  39.                                 bottle++;
  40.                                 System.out.println("换取后:"+"cap==" + cap + "bottle==" + bottle + "colaNum==" + colaNum);
  41.                         }               
  42.                 }
  43.                 return colaNum;
  44.         }
  45. }
复制代码
回复 使用道具 举报
public class Test3 {
        public static void main(String[] args)
        {
                int count = 3;
                int n = 1;
                while(count+n != 28)
                {
                        count += 2;
                        n++;
                }
                System.out.println(count);
        }
}
只不过28用这个方法可以求得出来,换成50就错了。请问有大神知道为什么吗
回复 使用道具 举报

eclipse中运行结果有误
具体如下

请输入人数:
28
共要买可乐-1431655746瓶!
回复 使用道具 举报
Juice.cy.wang 来自手机 中级黑马 2015-11-23 15:51:22
45#
太屌了,感觉好伤脑细胞啊
回复 使用道具 举报
好高深的样子  我一定要弄懂
回复 使用道具 举报
/*28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
* 思路:简单的数学计算题:1瓶可乐=1水+1盖子;3盖子=1瓶可乐;那么1水=2盖子;28人喝28水,需要56个盖子;
* 所以需要56/3=大约买19瓶可乐,50人同理;
*/
public class TextScanner {
        public static void main(String[] args) {
                Scanner input = new Scanner(System.in);
                System.out.println("请输入人数");
                double p = input.nextDouble();

                System.out.println("需要购买可乐瓶数:" + Math.ceil((2 * p) / 3));
        }
}
回复 使用道具 举报
这是用递归做的吧
回复 使用道具 举报
倪大大 发表于 2014-6-19 21:58
你这思想做不对吧, 你这个就可以等同于 3个人一组,一组只用买两瓶, 需要的瓶数就是 (人数/3)*2+人数%3;
  ...

你算算 19瓶酒满足 了
回复 使用道具 举报
太mtd屌了
回复 使用道具 举报
顶一个,挺好的
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 加入黑马