黑马程序员技术交流社区
标题:
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多...
[打印本页]
作者:
Johnny_Hu
时间:
2015-4-30 09:28
标题:
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多...
本帖最后由 Johnny_Hu 于 2015-4-30 09:55 编辑
public class Coke {
/*
* 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝? 假如是50人,又需要买多少瓶可乐?
*/
public static void main(String[] args) {
coke(50);
}
public static void coke(int num) { // 用于计算兑换的可乐瓶数
int count = 0;
// 总共要购买的可乐数
int sum = 0;
while (sum<num)
{
if (sum != num)
{
++sum;
if (sum % 3 == 0)
{
count++;
}
sum += count;
}
else
{
break;
}
}
System.out.println(sum - count);
}
}
复制代码
作者:
Johnny_Hu
时间:
2015-4-30 09:29
本帖最后由 Johnny_Hu 于 2015-4-30 09:56 编辑
我算出来 居然是45瓶
请问哪里出错了呢
作者:
鸡脑壳
时间:
2015-4-30 10:11
看楼主代码似乎表示
sum 是一共要买的瓶数
count 是能换取的瓶数
如果是这样我认为楼主思路上有两个地方有点问题
第一:楼主只计算了我第一次买可乐时的瓶盖数,却没有计算换来的可乐的瓶盖数,
代码体现在
if (sum % 3 == 0)
{
count++;
}
第二:楼主的这一条语句是以什么为标准?
if (sum != num)
sum ! = num
是要表示买的瓶数不等于要求的瓶数??
这条判断我不明白。。
作者:
V_nan
时间:
2015-4-30 11:06
class Test
{
public static void main(String[] args)
{
int c= countCoke(28);
int c1= countCoke(50);
System.out.println("c="+c);
System.out.println("c1="+c1);
}
public static int countCoke(int num)
{
int count = 0;//定义count来存储买的可乐数
int bollte=0;//定义bollte数来存储瓶盖数
while (num>0)
{
count++;
bollte++;
num--;//
if (bollte==3)
{
bollte=1;
num--;
}
}
return count;
}
}
复制代码
三个瓶盖换一瓶可乐-->有一人不用买,并且还多了一个瓶盖,每买一瓶人数减一,循环直到所有人都喝到为止
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2