这个使用过程中要注意:
大数的赋值、运算的不同,小心栈溢出!尽量节省空间
import java.math.BigInteger;
import java.util.Scanner;
public class P1009阶乘之和 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = new Scanner(System.in).nextInt();
BigInteger ans=BigInteger.valueOf(0);
for(int i=n;i>=1;i--) {
ans=ans.add(f1(i));
}
System.out.println(ans);
}
static BigInteger f1(int n) {
if(n==1) {
return BigInteger.valueOf(1);
}else {
return (f1(n-1)).multiply(BigInteger.valueOf(n));
}
}
}
该程序计算输入整数n的阶乘之和,使用BigInteger处理大数运算,递归函数f1计算阶乘,并在循环中累加。需要注意的是,递归深度可能导致栈溢出,应考虑优化空间使用。
988

被折叠的 条评论
为什么被折叠?



