天梯赛 L1-013 计算阶乘和 (10 分)
题目
对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!S=1!+2!+3!+...+N!S=1!+2!+3!+...+N!。
输入
输入在一行中给出一个不超过10的正整数NNN。
输出格式:
在一行中输出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;
}
感悟
感觉自己是个笨比= =
本文介绍了如何使用递归和递推方法计算1到N的阶乘和,并提供了C++代码示例。作者分享了两种算法的实现方式,同时表达了对自己的学习感悟。

被折叠的 条评论
为什么被折叠?



