黑马程序员技术交流社区
标题:
错误的程序,正确的答案,纠结
[打印本页]
作者:
run_wind
时间:
2014-11-8 23:31
标题:
错误的程序,正确的答案,纠结
本帖最后由 run_wind 于 2014-11-8 23:40 编辑
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?
这是一个黑马题,先是这一个小问,我写了个小程序,按照我前两分钟的思维,没能想到瓶盖换来可乐的瓶盖还能换可乐,所以写了个错误的程序,按照我的思路,应该是结果21。但是!答案对了,是19,现在让我纠结的是,
我的程序为什么运行出来是这个结果呢
???(声明,我的这个程序是个错误的,因为算不出第二问的正确答案)
class coke
{
public static void main(String[] args)
{
int count = 0;//瓶数
for (int x=0;x<28;x++)//x可乐
{
if(x%3==0)
x++;
count+=1;
}
System.out.println(count);
}
}
复制代码
经过验证,
for (int x=1;x<=28;x++) 答案恢复正常,但是我有点弄不明白自己写的这个程序了,我没有考虑到瓶盖的瓶盖能换,为什么程序反而对了
作者:
逍遥小seng
时间:
2014-11-9 00:43
上面的count+=1,代表买一次。x%3==0;应该是可乐数量增加1,结果你瓶盖数+1,等于是for循环少循环了好多次,也就代表你少买好多次。结果也就对了。
其实这题可以理解为买3瓶送1瓶
class lianxi
{
public static void main(String[] args)
{
int count = 0;//买可乐
int x =0;//买三瓶送一瓶
while (true)
{
count ++;//开始买
if(count%3==0)
x++;
if((count+x)==28)
break;
}
System.out.println(“count=”+count);
}
}
作者:
十指紧扣
时间:
2014-11-9 09:19
看不出什么问题!!!!!!!!!!!!!求解释!!!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2