21xrx.com
2025-03-24 19:52:32 Monday
文章检索 我的文章 写文章
C++ 求阶乘之和
2023-06-26 15:54:44 深夜i     52     0
C++ 阶乘 求和

在C++编程中,求阶乘之和是一个经常出现的问题。阶乘的定义是一个正整数n的阶乘是所有小于等于n的正整数的乘积,即n!=1×2×3×...×n。因此,阶乘之和就是1!+2!+3!+...+n!的计算结果。

在C++中,实现求阶乘之和可以采用循环和递归的方法。对于循环方法,需要使用for循环,从1到n循环计算每个数的阶乘,并将结果相加。具体代码实现如下:

#include <iostream>
using namespace std;
int main()
{
  int n;
  cout << "请输入n的值:" << endl;
  cin >> n;
  int sum = 0;
  int factorial = 1;
  for(int i=1;i<=n;i++)
  {
    factorial *= i;
    sum += factorial;
  }
  cout << "1!+2!+3!+...+n!的值为: " << sum << endl;
  return 0;
}

对于递归方法,可以定义一个函数来计算阶乘,然后在主函数中循环调用这个函数,并将结果相加。具体代码实现如下:

#include <iostream>
using namespace std;
int factorial(int n)
{
  if(n == 1)
    return 1;
  else
    return n * factorial(n-1);
}
int main()
{
  int n;
  cout << "请输入n的值:" << endl;
  cin >> n;
  int sum = 0;
  for(int i=1;i<=n;i++)
  {
    sum += factorial(i);
  }
  cout << "1!+2!+3!+...+n!的值为: " << sum << endl;
  return 0;
}

无论采用循环还是递归,求阶乘之和都是一道经典的C++编程问题。学习这个问题可以加深对循环和递归的理解,并提高编程能力和实际应用能力。

  
  

评论区