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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

小芳的妈妈每天给她25元钱,她都会存起来,但是,
每当这一天是存钱的第5天或者5的倍数的话,她都会花去60元钱,
请问,经过多少天,小芳才可以存到1000元钱。

我的编程思路是:

class hello {
        public static void main(String[] args) {
                //每天要存储的钱是 25元
                int dayMoney = 25;
               
                //存钱的初始化值是0
                int daySum = 0;
               
                //从第一天开始存储
                int dayCount = 1;

                while(daySum<=1000) {                       

                        if  (dayCount%5 == 0) {
                                daySum -= 60;
                                System.out.println("第"+dayCount+"天花了60");
                }
                        daySum = daySum + dayMoney;
                        dayCount++;
                        System.out.println("第"+dayCount+"天存了 "+daySum);
                       
                }
                System.out.println("要用"+dayCount+"天存够1000");
        }
}

答案是用74天存够,我的答案是75天,想知道按我的思路哪里出了问题?

7 个回复

正序浏览
小芳要被他妈打死了!
回复 使用道具 举报
修改了一下

class hello {
        public static void main(String[] args) {
                //每天要存储的钱是 25元
                int dayMoney = 25;
               
                //存钱的初始化值是0
                int daySum = 0;
               
                //从第一天开始存储
                int dayCount = 1;

                while(daySum<115) {                        

                        if  (dayCount%5 == 0) {
                                daySum -= 60;
                                System.out.println("第"+dayCount+"天花了60");
                }
                        daySum = daySum + dayMoney;
                     
                        System.out.println("第"+dayCount+"天存了 "+daySum);
                                                dayCount++;
                        
                }
                System.out.println("要用"+--dayCount+"天存够1000");
        }
}
总结了一下错误,大家看看对不对
A:逻辑错误,应该在先输出第一天的数据后,再对天数+1;
B;在74天时的数据是1010,已经达到目标1000,但是数据还在循环,是在dayCount=75天时发现daySum大于1000而结束,输出的dayCount=75,正确的天数应该是上一个循环的dayCount,所以应该减1

多谢上面的朋友们提醒!!!
回复 使用道具 举报
妄想年少轻狂 发表于 2016-3-31 21:23
存够1000后dayCount++,dayCount-1是要用的天数。还有应该是daySum < 1000,相等时就不循环了,(虽然对你这 ...

非常感谢
回复 使用道具 举报
15507596326 发表于 2016-3-31 21:23
你看控制台的打印结果就知道 第一行打印的是"第2天存了 25" 明显错了呀!应该是第一天存15,实际就是你的逻辑 ...

非常感谢
回复 使用道具 举报
你看控制台的打印结果就知道 第一行打印的是"第2天存了 25" 明显错了呀!应该是第一天存15,实际就是你的逻辑错误
dayCount++;
System.out.println("第"+dayCount+"天存了 "+daySum);
改为System.out.println("第"+dayCount+++"天存了 "+daySum);
结果是74天存到了1010

评分

参与人数 1黑马币 +1 收起 理由
r1503882525 + 1 赞一个!

查看全部评分

回复 使用道具 举报
存够1000后dayCount++,dayCount-1是要用的天数。还有应该是daySum < 1000,相等时就不循环了,(虽然对你这个没影响)
回复 使用道具 举报
这个程序没问题啊,编译运行都没问题,你所谓的问题是什么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马