文章
10
粉丝
10
获赞
2
访问
4.0k
从y总的求组合数来的,到这道题几乎降维打击
#### 循环做
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
const int N = 20;
LL fact[N];
int main()
{
int n;
cin >> n;
fact[0] = 1;
int res = 0;
for (int i = 1; i <= n; i ++)
{
fact[i] = fact[i - 1] * i;
res += fact[i];
}
cout << res << endl;
return 0;
}
#### 优雅的递归(注意这里是双重递归)
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
// 计算阶乘的递归函数
LL factorial(int n)
{
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 计算前n项阶乘和的递归函数
LL sumFactorials(int n)
{
if (n == 0)
return 0;
else
return factorial(n) + sumFactorials(n - 1);
}
int main()
{
int n;
cin >> n;
cout << sumFactorials(n) << endl;
return 0;
}
当然我...
登录后发布评论
暂无评论,来抢沙发