PTA L1-013 计算阶乘和 (10分)

题目描述:

对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。

输入格式:

输入在一行中给出一个不超过10的正整数N。

输出格式:

在一行中输出S的值。

输入样例:

3

输出样例:

9

 解题报告:

1:递归和非递归都可以。但我还是觉得递归好,类似于数学函数递推式,但容易爆栈。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll fac(ll n){return n==1?1:n*fac(n-1);}
ll sum(ll n){return n==1?1:fac(n)+sum(n-1);}
int main(){
    ll n;
    scanf("%lld", &n);
    printf("%lld\n", sum(n));
    return 0;
}
发布了109 篇原创文章 · 获赞 2 · 访问量 4582

猜你喜欢

转载自blog.csdn.net/jun_____/article/details/103979574