题目描述:
对于给定的正整数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;
}