1. 程式人生 > >C刷題記錄-1014

C刷題記錄-1014

for lld col 輸出 刷題 stdio.h panel 一個數 輸入

題目描述

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一個數字(n不超過20)。

輸入

n

輸出

Sn的值

樣例輸入

5

樣例輸出

153

 1 #include <stdio.h>
 2 
 3 unsigned long long int get_factorial (int n);
 4 
 5 int main(){
 6 
 7   int n,i;
 8   unsigned long long int SN = 0;
 9   scanf("%d",&n);
10 
11   for(i=1;i<=n;i++)
12 { 13 SN = SN + get_factorial(i); 14 } 15 printf("%lld",SN); 16 return 0; 17 } 18 19 /* 20 需要註意數據長度,如果n很小的時候,結果是正確的, 21 但是n=20的時候,超出int的範圍,所以定義成unsigned long long int 22 */ 23 unsigned long long int get_factorial (int n) 24 { 25 unsigned long long int factorial; 26 if (n==1) 27 {
28 factorial = 1; 29 } 30 else if (n>=2) 31 { 32 factorial = (unsigned long long int)n * get_factorial(n-1); 33 } 34 35 return factorial; 36 }

C刷題記錄-1014