为了账号安全,请及时绑定邮箱和手机立即绑定

计算1到100之间不能被3整除的数之和 为什么我用while循环输出的答案不对

public class HelloWorld {

    public static void main(String[] args) {

int sum = 0; 

        int i = 0;

        while(i<=100){

            i++;

            if(i%3!=0){

                sum=sum+i;

            }

        }

        System.out.println("1到100之间不能被3整除的数之和为:"+sum);

    }

}


正在回答

3 回答

public class HelloWorld {

    public static void main(String[] args) {

int sum = 0; 

        int i = 0;

        while(i<=100){

            if(i%3!=0){

                sum=sum+i;

            }

        i++;

        }

        System.out.println("1到100之间不能被3整除的数之和为:"+sum);

    }

}


0 回复 有任何疑惑可以回复我~
#1

慕粉3345685 提问者

非常感谢!
2016-05-19 回复 有任何疑惑可以回复我~

应该是多了101

排成数列来看,为方便体现结果,暂不考虑(i%3!=0)这个条件:

i++放在if后面是:0,1,2,3,。。。。。。99,100

      i++放在if前面是:1,2,3,。。。。。。。。100,101

所以,最后是多了101

0 回复 有任何疑惑可以回复我~

i++应该放while外面的,如果放里面的话,while里面要改为(i<100),不然就加多了一个101。

0 回复 有任何疑惑可以回复我~
#1

xing3384867

说错了,i++是放if后面,不是while外面
2016-05-19 回复 有任何疑惑可以回复我~
#2

慕粉3345685 提问者 回复 xing3384867

非常感谢!
2016-05-19 回复 有任何疑惑可以回复我~
#3

慕粉18355395361

实际上是多了100,放在if 前面的话,就少了一个“1”而多加了一个“101”,综合起来就是多了“100”。
2016-07-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

计算1到100之间不能被3整除的数之和 为什么我用while循环输出的答案不对

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信