使用C++编写程序
题目描述
求1! + 2! + ……n!
输入
输入一个整数n,你可以假定n不大于10。
输出
输出一个整数,即阶乘累加的结果,单独占一行。
样例输入 Copy
4
样例输出 Copy
33
程序代码如下
#include<iostream>
//#include<vector> //顺序容器vector的头文件
#define ElemType_I int
using namespace std;
class SumOfFactorial
{
public:
SumOfFactorial(ElemType_I n) :Number(n) {};
//void GetFactorialValue();
void GetSumOfFactorial();
private:
ElemType_I Number;
ElemType_I Accumulator = 0; //累加器
ElemType_I Multiplier = 1; //累乘器
//vector<ElemType_I> FactorialTable;
};
/*
inline void SumOfFactorial::GetFactorialValue()
{
FactorialTable.push_back(1); //0!=1
for (int i = 1; i <= Number; i++)
{
Multiplier = i * FactorialTable[i - 1];
FactorialTable.push_back(Multiplier);
}
}
*/
inline void SumOfFactorial::GetSumOfFactorial()
{
for (int i = 1; i <= Number; i++)
{
Multiplier *= i;
Accumulator += Multiplier;
}
cout << Accumulator;
/*
for (int i = 1; i <= Number; i++)
Accumulator += FactorialTable[i];
cout << Accumulator;
*/
}
int main()
{
ElemType_I n;
cin >> n;
SumOfFactorial SumOfFactorialObject(n);
//SumOfFactorialObject.GetFactorialValue();
SumOfFactorialObject.GetSumOfFactorial();
return 0;
}