C++中:输入一个正整数n,求1!+2!+3!+...+n!的值。
作者:野牛程序员:2023-03-30 11:38:34C++程序设计阅读 3329
【问题描述】
输入一个正整数n,求1!+2!+3!+...+n!的值。
【样例输入】
5
【样例输出】
1!+2!+3!+4!+5!=1+2+6+24+120=153
C++语言的代码实现方法一:
#include <iostream> using namespace std; int main() { int n, sum = 0, fac = 1; cout << "请输入一个正整数n:"; cin >> n; for (int i = 1; i <= n; i++) { fac *= i; sum += fac; } cout << "1!+2!+3!+...+" << n << "!=" << sum << endl; return 0; }
C++语言的代码实现方法二: #include <iostream> using namespace std; int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } } int main() { int n, sum = 0; cout << "请输入一个正整数n:"; cin >> n; for (int i = 1; i <= n; i++) { sum += factorial(i); } cout << "1!+2!+3!+...+" << n << "!=" << sum << endl; return 0; }
在上述代码中,我们定义了一个递归函数factorial,用于计算n的阶乘。在主函数中,我们通过循环依次计算1到n的阶乘并将它们累加起来,最终输出结果。
C++语言的代码实现方法三:
#include <iostream> using namespace std; int main() { int n, sum = 0, fac = 1; cout << "请输入一个正整数n:"; cin >> n; for (int i = 1; i <= n; i++) { fac = 1; for (int j = 1; j <= i; j++) { fac *= j; } sum += fac; } cout << "1!+2!+3!+...+" << n << "!=" << sum << endl; return 0; }
在上述代码中,我们使用两层循环来计算1到n的阶乘。外层循环控制阶乘的个数,内层循环计算当前阶乘的值。每次计算完一个阶乘后,将它累加到变量sum中,最终输出结果。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892