简单写一个算法关于求阶乘的累加和问题

57 阅读1分钟

image.png

第一种实现方式:比较lou

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 = cur * i;
       ans += cur;
    }
    return ans;
}

image.png