计算java中1到100之间所有平方数的总和

时间:2017-10-22 11:14:50

标签: java

public class SumSquares {
public static void main(String[] args){
    int num = 1;
    int square;
    int sum = 0;
    while(num <= 100){
        square = (num * num);
        sum = sum + square;
        num++;
    }
    System.out.println(sum);
}

}

这是我尝试的方式,输出是338350,但这不是我想要的

这就是我想要的==&gt; (1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81)= 285

java程序的输出应 285

3 个答案:

答案 0 :(得分:0)

您的停止条件错误,因为您正在添加从1 * 1到100 * 100的方块。您想要添加从1 * 1到9 * 9的方块。

应该是:

while (num < 10) {
    square = (num * num);
    sum = sum + square;
    num++;
}

while (num * num < 100) {
    square = (num * num);
    sum = sum + square;
    num++;
}

答案 1 :(得分:0)

使用Java 9流可以执行以下操作:

System.out.println(IntStream.range(1, Integer.MAX_VALUE)
            .map(v -> v * v)
            .takeWhile(v -> v < 100)
            .sum());

答案 2 :(得分:0)

一些替代方案:

        int num = 1;
        int square =0;
        int sum = 0;
        while(true){
            square = (num * num);
            if(square >=100) {break;}
            sum = sum + square;
            num++;
        }
        System.out.println(sum);

        //using java 8 Stream
        int sumUsingStream =  IntStream.range(1, 100)
                .filter((v)-> (v*v) < 100 )
                .map(v -> v * v)
                .sum();

        System.out.println(sumUsingStream);