文章

10

粉丝

40

获赞

2

访问

4.9k

头像
阶乘和 题解(小白超易懂,循环做法或者递归):
P1044 北京航空航天大学机试题
发布于2024年8月2日 23:42
阅读数 470

从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;
    
}

当然我...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发