我有这个问题做作业:写一个程序来计算前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);
答案 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
这样的“错误”输入