递归函数和累加的方式进行计算:


#include <iostream>

int factorialSum(int n) {
    if (n == 0) {
        return 0;
    }
    return factorial(n) + factorialSum(n - 1);
}

int main() {
    int num;
    std::cout << "请输入一个正整数:";
    std::cin >> num;

    int sum = factorialSum(num);

    std::cout << "阶乘和为:" << sum << std::endl;

    return 0;
}

如果您想求解C++中阶乘和的问题,可以使用循环或递归的方法来实现。下面是两种方法的示例代码:

使用循环计算阶乘和:

#include <iostream>

int factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; ++i) {
        result *= i;
    }
    return result;
}

int main() {
    int num;
    std::cout << "请输入一个正整数:";
    std::cin >> num;

    int sum = 0;
    for (int i = 1; i <= num; ++i) {
        sum += factorial(i);
    }

    std::cout << "阶乘和为:" << sum << std::endl;

    return 0;
}

使用递归计算阶乘和:

#include <iostream>

int factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int factorialSum(int n) {
    if (n == 0) {
        return 0;
    } else {
        return factorial(n) + factorialSum(n - 1);
    }
}

int main() {
    int num;
    std::cout << "请输入一个正整数:";
    std::cin >> num;

    int sum = factorialSum(num);

    std::cout << "阶乘和为:" << sum << std::endl;

    return 0;
}

### 使用while循环计算阶乘和的方法如下:

```cpp
#include <iostream>

int factorial(int n) {
    int result = 1;
    int i = 1;
    while (i <= n) {
        result *= i;
        i++;
    }
    return result;
}

int main() {
    int num;
    std::cout << "请输入一个正整数:";
    std::cin >> num;

    int sum = 0;
    int i = 1;
    while (i <= num) {
        sum += factorial(i);
        i++;
    }

    std::cout << "阶乘和为:" << sum << std::endl;

    return 0;
}

这段代码使用while循环来计算阶乘和,通过变量i控制循环次数。在每次循环中,计算当前数字的阶乘并累加到总和中,然后递增i直到达到指定的正整数num为止。