一个java小题目【空瓶换可乐】

tommaomao233 2012-06-30 10:00:15



package homework;

public class Test1 {

public static void main(String[] args) {

int sum = 50;
int i = 50;
int chuShu = 0;
int yuShu = 0;
for (; i > 2; i--) {
chuShu = i / 3;
yuShu = i % 3;
sum += chuShu;
i = chuShu + yuShu;
}
System.out.println(sum);
//System.out.println(2/3);
//System.out.println(2%3);
}
}

/*
*
* 1、 50 瓶可乐,3 空瓶换一瓶,一共能喝多少?
*
* 笔算结果为 50+16+6+2=74
*
* 可是输出结果为73,觉得过程没有错,不知道错在哪儿?
*
*/


...全文
383 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果不让借瓶子的话,公式稍微复杂一些:

喝汽水的数量:(N * 3) / 2 - (1 - N % 2)
剩下空瓶数量:(N + 1) % 2 + 1
  • 打赏
  • 举报
回复
50 瓶汽水可以喝到 75 瓶汽水,最后一个空瓶都不剩
  • 打赏
  • 举报
回复
如果剩下两个空瓶,问老板借一个空瓶凑足三个空瓶,之后换一瓶,把喝下的空瓶还给老板时:

喝的汽水数量:(N * 3) / 2
剩余空瓶数量:(N * 3) % 2
tommaomao233 2012-07-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

如果不让借瓶子的话,公式稍微复杂一些:

喝汽水的数量:(N * 3) / 2 - (1 - N % 2)
剩下空瓶数量:(N + 1) % 2 + 1
[/Quote]

嗯 这样是不错 不过挺复杂的 现在知道更简单的了 见楼上
tommaomao233 2012-07-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

Java code

int sum = 50;
int i = 50;
int chuShu = 0;
int yuShu = 0;
for (; i >2; i--) {
chuShu = i / 3;
yuShu = i % 3;
sum=sum+chu……
[/Quote]

嗯 知道了 多谢 = =


不过有更好的方法了


package homework;

public class Test1 {
public static void main(String[] args) {
int tong = 50;
int count=0;
while(tong>=1){
count++;
tong--;
if(count%3==0){
tong++;
}
}
System.out.println(count);
}

}
//1、 50 瓶可乐,3 空瓶换一瓶,一共能喝多少?

lxczaiaccp 2012-07-01
  • 打赏
  • 举报
回复

int sum = 50;
int i = 50;
int chuShu = 0;
int yuShu = 0;
for (; i >2; i--) {
chuShu = i / 3;
yuShu = i % 3;
sum=sum+chuShu;
if(i>2)
i=1+chuShu + yuShu;
else{
i=chuShu + yuShu;
}
}
System.out.println(sum);
//输出结果 74


你调试过了吗 你每次i-- 的时候循环里的i就变为17了(应该是18)。
导致除数与余数不对。结果自然变换成73
tommaomao233 2012-06-30
  • 打赏
  • 举报
回复
我的分析过程


可乐 空瓶
50 50 =16*3+2
16 18 =6*3
6 6 =2*3
2 0 =0*3



- -

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧