1 #include <stdio.h>
2
3 /*
4 题目:求 1+2!+3!+...+20!的和
5 */
6 unsigned long long int
7 factorial(long n) {
8 unsigned long long int tmp = 1; //每一个数的阶乘,如,1!,2!,3!...20!.
9 unsigned long long int sum = 0; //总和,即1+2!+3!+...+20!的和.
10 for(long long int i = 1; i <= n; i++) {
11 tmp *= i;
12 sum += tmp;
13 }
14
15 return sum;
16 }
17
18 int
19 main(void) {
20 unsigned long long int r = factorial(20);
21 printf("%llu\n", r);
22
23 /*
24 _int64 fact = 1,i,sum = 0;
25 for(i = 1; i < 21; ++i) {
26 fact *= i;
27 sum += fact;
28 }
29 printf("sum = %I64d\n",sum);
30 */
31 }