ACM俱樂部練習-階乘數列

題目描述

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章