黑马程序员技术交流社区

标题: 小芳存钱问题求解 [打印本页]

作者: lopisa    时间: 2016-11-6 19:36
标题: 小芳存钱问题求解
问题为:             小芳的妈妈每天给她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?



作者: 潘老板    时间: 2016-11-6 20:01
经过了74天,现在是第75天。 这有点像是语文
作者: ylz1997    时间: 2016-11-6 22:32
当x=74的时候  sum是之前73天的和  且小于100  循环继续进行  sum+2.5后大于100  但是此时x也进行了自增  你可以在x++上加一天判断   如果sum>100 break
作者: shu307856810    时间: 2016-11-6 23:26
没看懂啊

作者: 一片叶~    时间: 2017-1-2 09:15
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 +"天");
}
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2