C刷題記錄-1014
阿新 • • 發佈:2017-11-08
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