黑马程序员技术交流社区
标题:
分享一个测试题思路
[打印本页]
作者:
Fightin黑马
时间:
2014-9-20 22:40
标题:
分享一个测试题思路
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐?
思路:
1.假设有一个房间,房间里面有两个商店,A商店只卖可乐,B商店只准用瓶盖换可乐,3个瓶盖换一瓶可乐,
* 房间不断的有人进来,进来这个人先看一下有几个瓶盖,有3个就去B商店换,不够三个就去A商店买一瓶,
* 设定进来多少个人,最后统计A商店卖出去的可乐就是要买的可乐.
* 2.第1个人进入房间,没有瓶盖就去A商店买1瓶 A总计卖出去1瓶
* 第2个人进入房间,发现有1个瓶盖,不够换的就去A商店买1瓶 A总计卖出去2瓶
* 第3个人进入房间,发现有2个瓶盖,不够换的就去A商店买1瓶 A总计卖出去3瓶
* 第4个人进入房间,发现有3个瓶盖,就拿着三个瓶盖去B商店换一瓶 A总计卖出去3瓶
* 第5个人进入房间,发现有1个瓶盖,不够换的就去As商店买1瓶 A总计卖出去4瓶
* ........
* ........
* ........
* 3.代码实现:
* 多少个人就循环多少次
* 进入房间就先判断瓶盖是不是三个,不是三个就去买,A商店卖出去的数量就加1
* 是三个就去换一瓶,喝完房间里就剩下一个瓶盖.
作者:
犹豫铅笔
时间:
2014-9-21 09:34
学习了,,,
作者:
wy363681759
时间:
2014-9-21 14:10
这个题用数学好做,用C语音有点难,用java更难
作者:
祁焱
时间:
2014-9-21 14:18
赞一个!
作者:
Fightin黑马
时间:
2014-9-21 20:02
wy363681759 发表于 2014-9-21 14:10
这个题用数学好做,用C语音有点难,用java更难
没有呀,我倒是觉得用程序实现更简单
作者:
哈达洋
时间:
2014-9-21 21:02
本帖最后由 哈达洋 于 2014-9-21 22:02 编辑
int i;
int j=0;
for(i=1;(i+j+1)<=28;i++)
{
j=i/2;
}
System.out.println(i+1);
作者:
new999
时间:
2014-9-23 08:40
wy363681759 发表于 2014-9-21 14:10
这个题用数学好做,用C语音有点难,用java更难
关键还是要有思路
package com.itheima.test;
public class EmptyBottles{
public static void main(String[] args){
final int pNum=3;
//3空瓶=1瓶可乐+1空瓶,也就是1空瓶=0.5瓶可乐,所以初始1瓶可乐=1.5瓶可乐
//因此,最初只要买pNum/1.5瓶可乐,就够pNum人喝
int num=pNum*2/3;
System.out.println("方法1:买来"+(pNum%3==0?num:num+1)+"瓶可乐,够"+pNum+"人喝");
System.out.println("方法2:买来"+getBottles(pNum)+"瓶可乐,够"+pNum+"人喝");
}
private static int getBottles(int pNum) {
//empty用于记录空瓶数,sum是实际喝到的瓶数,bottles2是换来的可乐。
int sum, empty,bottles2;
for (int i = pNum>>>1; i < pNum; i++) {
sum = i;//初始瓶数i,喝掉i瓶,
empty = i;//产生i瓶空瓶
while ((bottles2=empty/3)!=0) {//空瓶换可乐
sum += bottles2;//喝掉换来的可乐,
empty = bottles2 + empty%3;//产生的空瓶再加上上次剩下的空瓶
}
if(empty==2){//向老板赊来1瓶,最后用3个空瓶偿还
sum++;
}
//System.out.println("买来"+i+"瓶可乐,够"+sum+"人喝,最后剩下个"+empty+"空瓶");
if(sum>=pNum){
return i;
}
}
return pNum;
}
}
复制代码
作者:
闫跃文
时间:
2014-9-23 09:42
这个貌似不太难
作者:
哈达洋
时间:
2014-9-23 21:18
new999 发表于 2014-9-23 08:40
关键还是要有思路
你这个做的也太复杂了。。。。。
作者:
DreamSeeker
时间:
2014-9-24 07:47
不管怎么说,还是谢谢分享
作者:
hailong
时间:
2014-9-24 10:10
路过,学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2