2021年3月18日
【实验题目内容】:
编写一个程序,从0至用户输入的最高项数的所有阶乘之和。
即计算0!+1!+2!+3!+…+currentSize!
#include <iostream>
using namespace std;
//求阶乘方法
double Factorial(long m)
{
double factorial = 1;
while (m > 1)
{
factorial *= m;
m--;
}
return factorial;
}
//求总项数阶乘之和的方法
long SUMFactorial(long n)
{
long factorial, m = n, sum = 2;
if (n < 0)factorial = -1;
else if (n == 0)factorial = 1;
else
{
while (n > 1)
{
factorial = Factorial(n);
sum += factorial;
n--;
}
factorial = sum;
}
return factorial;
}
int main()
{
system("color F0");
cout << "请输入需要求和的最高项数" << endl;
double currentSize;
cin >> currentSize;
long total = SUMFactorial(currentSize);
if (total < 0)cout << "所输入的" << currentSize << "为负数,无阶乘。" << endl;
else cout << "最高项数为" << currentSize << "的阶乘之和为 " << total << endl;
system("pause");
return 0;
}
运行结果如图所示: