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

lopisa

初级黑马

  • 黑马币:35

  • 帖子:12

  • 精华:0

© lopisa 初级黑马   /  2016-11-6 19:36  /  1660 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

问题为:             小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
请问,经过多少天,小芳才可以存到100元钱?

我的代码为:
[Java] 纯文本查看 复制代码
class WhileDemo {
        public static void main(String []args) {
                
                double sum = 0.0;//总存钱数
                int x = 1;//存天数
                while (sum<100){
                        sum+=2.5;
                        if (x%5==0){
                                sum-=6.0;
                                System.out.println("第"+x+"天花去了6元");
                        }
                        x++;
                }
                System.out.println("需要经过"+x+"天");
}
}


这样的出来的结果是75.正确的结果应该是74;

我想问问大家为什么结果应该是74,而不是75?


4 个回复

倒序浏览
经过了74天,现在是第75天。 这有点像是语文

评分

参与人数 1黑马币 +2 收起 理由
lopisa + 2 谢谢!

查看全部评分

回复 使用道具 举报
当x=74的时候  sum是之前73天的和  且小于100  循环继续进行  sum+2.5后大于100  但是此时x也进行了自增  你可以在x++上加一天判断   如果sum>100 break

评分

参与人数 1黑马币 +2 收起 理由
lopisa + 2 原来如此!

查看全部评分

回复 使用道具 举报
回复 使用道具 举报
class WhileDemo {
        public static void main(String []args) {
                 
                double sum = 0.0;//总存钱数
                int x = 1;//存天数
                while (sum <= 100){
                        sum += 2.5;
                        if (x % 5 == 0){
                                sum -= 6.0;
                                System.out.println("第"+ x +"天花去了6元");
                                System.out.println(sum);
                        }
                        
                         if(sum >= 100) {   //条件满足,跳出循环,x不自增
                            break;
                        }
                        x++;
                }
                System.out.println("需要经过"+ x +"天");
}
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马