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

来源:4-9 Java循环语句之 for

慕粉3345685

2016-05-19 22:12

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回答

  • 白开水1995
    2016-05-19 22:16:20
    已采纳

    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);

        }

    }


    慕粉3345...

    非常感谢!

    2016-05-19 23:19:02

    共 2 条回复 >

  • 慕粉2102015643
    2016-12-26 03:49:05

    应该是多了101

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

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

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

    所以,最后是多了101

  • xing3384867
    2016-05-19 22:50:40

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

    慕粉1835...

    实际上是多了100,放在if 前面的话,就少了一个“1”而多加了一个“101”,综合起来就是多了“100”。

    2016-07-08 17:03:26

    共 3 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题