如果我们在下面列出10是3或5的倍数的所有自然数,我们得到了3,5,6和9这倍数的总和为23Java的欧拉程序错误
找到的总和3或5低于1000
项目欧拉的所有倍数找到解决方案,我得到一个array out of bounds error
import java.awt.List;
import java.util.Vector;
import java.util.ArrayList;
import java.util.stream.*;
//print the sum of the multiples of 3 and 5 below 1000
public class multiples_of_3_and_5 {
public static void main(String[] args) {
int mult3[] = new int[200];
int mult5[] = new int[200];
for (int i = 1; i <= 1000; i+=3 -1) {
for (int x = 0; x <= mult3.length; x++) {
mult3[x] = i;
}
}
for (int i = 1; i <= 1000; i+=5 -1) {
for(int x = 0; x <= mult5.length; x++) {
mult5[x] = i;
}
}
int threeTotal = IntStream.of(mult3).sum();
int fiveTotal = IntStream.of(mult5).sum();
System.out.println(threeTotal);
System.out.println(fiveTotal);
}
}
嗯,这个例外是由于'x <= mult3.length',它应该是'x
Eran
不要那么静止。使用更多动态的东西 - 将数字放在'ArrayList'中。这样你就不必知道你需要存储的数字的数量。 –
而且 - 您可以在第一个循环中计算总和。那么你不需要'int threeTotal = IntStream.of(mult3).sum();'line –