N以下3或5的所有倍数之和
我必须找到N以下3或5的所有倍数之和。 例如,如果我们必须列出10以下的所有自然数,它们是3或5的倍数,我们得到3、5、6和9,这些倍数的总和是23
现在唯一剩下的问题是,我希望它能够读取所有的数字,然后显示总和,因为现在它读取一个数字,然后显示总和,有什么想法吗
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
int Nbr = Integer.parseInt(line);
for(int j=0; j<Nbr;j++)
{
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
String line2 = br2.readLine();
String[] numbers = new String[Nbr];
numbers[j]= line2;
System.out.println(Somme(Long.parseLong(numbers[j])));
}
}
public static long Somme(long Nn) {
long s = 0;
for (int i = 0; i < Nn; i++) {
if (((i % 3) == 0) || ((i % 5) == 0)) {
s = s + i;
}
}
return (s);
}
}
# 1 楼答案
如果你想先读取所有的N,那么先读取它们并将它们放入一个数组中,然后再尝试求和
# 2 楼答案
我建议您使用^{} 。我还建议您通过以
3
为增量从3
迭代到n
来添加到sum
。然后以5
的增量从5
到n
(然后排除3
的倍数,因为它们已经被添加)。差不多根据下面的注释,将
main
更改为首先读取int
个计数,然后将它们存储在数组中。差不多# 3 楼答案
您可以创建
ArrayList
并将总和添加到其中,然后在循环后打印它# 4 楼答案
将打印语句移出循环
在循环之前
内环
循环之后
# 5 楼答案
正如我们所知道的,我们需要求n=10或100或更多(这是极限)下可被3或5整除的数字之和。但是如果我们有n=20,那么15(15%5==0&;&;15%3==0)将出现两次,因此我们只需要加一次,这样我们就需要检查一个数字是否可以被15整除(因为5*3=15)