A系列的输出

时间:2015-12-05 12:46:08

标签: java

我正在尝试编写一个Java程序来获取本系列的输出:

series

所以我这样做了:

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。如果有人可以请指出错误。

2 个答案:

答案 0 :(得分:2)

您忘记在内循环之前重置addmult

   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);
}