我正在尝试编写一个Java程序来获取本系列的输出:
所以我这样做了:
import java.util.Scanner;
public class ICSE2007_Pg111 {
public static void main() {
Scanner sc = new Scanner(System.in);
System.out.println("Enter th elimit");
int n = sc.nextInt();
double add = 0;
double mult = 1;
double divide = 0;
double total = 0;
for (int i = 2; i <= n; i++) {
for (int x = 1 ; x <= i; x++) {
add += x;
mult *= x;
}
divide = add / mult;
total += divide;
}
System.out.println("The resultant sum = " + total);
}
}
我认为这段代码是正确的。但是,对于n = 3
的值,正确的输出应为2.916666666666666666
,但我得到2.25
。如果有人可以请指出错误。
答案 0 :(得分:2)
您忘记在内循环之前重置add
和mult
:
for(i = 2;i<=n;i++) {
add = 0;
mult = 1;
for(x =1 ;x<=i;x++)
{
add +=x;
mult *= x;
}
...
P.S。根据您的图片,对于n=3
,您应该获得2.5
。
答案 1 :(得分:0)
您可以在一个循环中以优化的方式执行此操作
float sum = 1;
float mul = 1;
float res = 0;
for(int i = 2;i<=n;i++) {
sum = sum+i;
mul = mul*i;
res = res+(sum/mul);
}