题目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
输入
n
输出
Sn的值
样例输入复制
5
样例输出复制
153
解题思路
1.首先,解决如何实现阶乘,你会发现每一阶乘都是1*2*3这种类型的
对于这种类型我们采用循环结构解决
2.对每一次阶乘的结果进行求和得到Sn
3.尤其要注意,20!的和是一个远远超过整形的数字,所以用长长整形存储
解题答案
//求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
#include <iostream>
using namespace std;
int main(){
long long Sn = 0;
long long temp = 1;
int n;
cin>>n;
for (int i = 1; i <= n; ++i) {
temp *= i ;
Sn+=temp;
}
cout<<Sn<<endl;
}