題目描述
求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;
}