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