编写程序来计算前n个正整数的阶乘之和?

时间:2016-04-12 19:03:20

标签: java

我有这个问题做作业:写一个程序来计算前n个正整数的阶乘的总和。 这是我到目前为止所做的,但我没有得到我应该得到的输出。有人能告诉我,我做错了什么。

System.out.print("Enter a number: ");
int num=input.nextInt();

for (int i=1; i<=num; i++) {
    num=num+i;          
}
System.out.print(num);

2 个答案:

答案 0 :(得分:0)

我建议这样做,例如:

public static void main(String... args){
    int n=10; 
    BigInteger j=BigInteger.valueOf(1);
    BigInteger k=BigInteger.valueOf(0);
    for(int i=0;i<n;i++){
        j=j.multiply(BigInteger.valueOf(i+1));
        k=k.add(j); 
        //System.out.println(j + "\t" + k);
    }
    System.out.println("Sum of " + n + " first factorials equals: " + k);       
}

我希望它有所帮助。

答案 1 :(得分:0)

试试这个:

int n, c, fact = 1;
do {
    System.out.println("Please enter a positive integer.");
    n = input.nextInt();
} while ( n < 1 );
    for ( c = 1 ; c <= n ; c++ ) {
       fact = fact*c;
    }
    System.out.println("Factorial of "+n+" is = "+fact);
}

do-while循环要求用户输入,如果输入小于1则重复。此外,我猜测计算阶乘的行是不正确的。

注意:此示例不会阻止像12.5

这样的“错误”输入