为了计算从1至n的阶乘之和,我们首先需要定义一个用于计算单个数阶乘的函数。下面是一个使用递归方法实现的阶乘函数:
long long unsigned factorial(long long unsigned num) { return num <2LL ? 1LL : (factorial(num - 1LL) * num); }
接下来,我们需要定义一个函数来累加这些阶乘值。这里同样使用了递归的方法:
long long unsigned factorialSum(long long unsigned num) { return num <2LL ? 1LL : factorialSum(num - 1LL) + factorial(num); }
除了上述直接调用阶乘函数的方式外,我们还可以通过定义一个lambda表达式来实现阶乘计算,这样可以在单个函数中完成所有操作,代码如下:
long long unsigned factorialSum(long long unsigned num) { auto factorial = [](long long unsigned n) -> long long unsigned { return n <2LL ? 1LL : (factorial(n - 1LL) * n); }; return num <2LL ? 1LL : factorialSum(num - 1LL) + factorial(num); }
以上两种方法均可有效计算出给定范围内的阶乘总和,适用于大多数编程应用场景。
版权所有,禁止转载