题目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个整数。(1≤n≤10)
输入
n
输出
Sn
样例输入
5
样例输出
153
#include<iostream>
using namespace std;
int fun(int n){
int s = 1;
for(int i=1; i<=n; i++){
s *= i;
}
return s;
}
int main(){
int n;
int Sn = 0;
cin>>n;
for(int i=1; i<=n; i++){
Sn += fun(i);
}
cout<<Sn<<endl;
return 0;
}
====================================================================
#include <iostream>
#include <cstdio>
int main() {
int n;
scanf("%d", &n);
int t = 0;
for (int i = 1; i <= n; i++) {
int m = 1;
for (int j = 1; j <= i; j++)
m *= j;
t += m;
}
printf("%d\n", t);
return 0;
}
=====================================================================
用一个辅助数组存放阶乘,这样复杂度会降低到O(N)~~
#include <iostream>
#include <cstdio>
int main() {
int n;
scanf("%d", &n);
int t = 0;
int A[11];
A[0]=1;
for (int i = 1; i <= n; i++) {
A[i] = A[i-1]*i;
}
for(int i = 1; i <=n ; i++) {
t += A[i];
}
printf("%d\n", t);
return 0;
}