天梯赛 L1-013 计算阶乘和 (10 分)
题目
对于给定的正整数N,需要你计算
S
=
1
!
+
2
!
+
3
!
+
.
.
.
+
N
!
S=1!+2!+3!+...+N!
S=1!+2!+3!+...+N!。
输入
输入在一行中给出一个不超过10的正整数
N
N
N。
输出格式:
在一行中输出S的值。
测试样例
输入样例:
3
输出样例:
9
简单分析:
代码:
1.递归
#include <iostream>
using namespace std;
int jiechen(int a) {
if (a == 1) return 1;
return a * jiechen(a - 1);
}
int main() {
int a;
cin >> a;
int ans = 0;
for (int i = a; i >= 1; i --)
ans += jiechen(i);
cout << ans << endl;
return 0;
}
2.递推
#include <iostream>
using namespace std;
int factorial;
int main() {
cin >> factorial;
int sum = 0, s = 1;
for (int i = 1; i <= factorial; i ++)
sum += s*=i;
cout << sum << endl;
return 0;
}
感悟
感觉自己是个笨比= =
|