Java N以下3或5的倍数之和
求N以下所有3或5的倍数的总和整数。 我使用了正常的AP系列公式进行计算……但是有两个测试用例出现了错误。有人能告诉我这段代码有什么问题吗? 我没有使用显示由于超时而终止的循环Java N以下3或5的倍数之和,java,Java,求N以下所有3或5的倍数的总和整数。 我使用了正常的AP系列公式进行计算……但是有两个测试用例出现了错误。有人能告诉我这段代码有什么问题吗? 我没有使用显示由于超时而终止的循环 }这段代码的当前结果是什么?对于一些测试用例,它运行良好……但是对于其他一些测试用例,我的输出不正确。嗨,anamika,我不明白为什么要使用int n1=n-1/3;。AP的公式不是:n/22a+n-1d吗?它表示n以下的倍数之和。例如,20以下有3个5的倍数…因此,如果n=20,20-1/5给我3…表示倍数的数量。我
}这段代码的当前结果是什么?对于一些测试用例,它运行良好……但是对于其他一些测试用例,我的输出不正确。嗨,anamika,我不明白为什么要使用int n1=n-1/3;。AP的公式不是:n/22a+n-1d吗?它表示n以下的倍数之和。例如,20以下有3个5的倍数…因此,如果n=20,20-1/5给我3…表示倍数的数量。我不能将20作为倍数。在AP系列中,n是倍数的数量。你看,用什么输入会得到不正确的结果?因为代码没有解释什么,所以被否决。什么是N?倍数的数目?如果是的,我想要2倍的总和,那么你的代码就不能工作了。
int T = sc.nextInt();
double f1 =0;
double f2 =0;
double f3 =0;
double sum =0;
for(int i =0; i<T; i++){
int n = sc.nextInt();
// n1,n2,n3 are the number of multiples
int n1 = (n-1)/3;
int n2 = (n-1)/5;
int n3 = (n-1)/15;
// summation formula of AP series
f1 = (n1/2.0)*(6+(n1-1)*3);
f2 = (n2/2.0)*(10+(n2-1)*5);
f3 = (n3/2.0)*(30+(n3-1)*15);
// summation multiples of 3 OR 5
sum = f1-f3+f2;
// Printing the final integer
System.out.println((int)sum);
}
}
private int Sum(int N) {
int sum = 0;
for (int i = 3; i < N; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
return sum;
}