java求1-n阶乘的和
题解
法一
public static long f1(int N) {
long ans = 0;
for (int i = 1; i <= N; i++) {
ans += factorial(i);
}
return ans;
}
public static long factorial(int N) {
long ans = 1;
for (int i = 1; i <= N; i++) {
ans *= i;
}
return ans;
}
法二
public static long f2(int N) {
long ans = 0;
long cur = 1;
for (int i = 1; i <= N; i++) {
cur *= i;
ans += cur;
}
return ans;
}
结果
输入:10
结果
解析
方法一:
求每个阶乘然后加在一起。
方法二:
设置中间变量将前一个阶乘保存,下一个复用。