这是是求阶乘和的非递归实现:
// methods1.c #include <stdio.h> long double Fn(int n); int main(void) { long double sum = 0; int i, n; i = n = 0; printf("Please input a number: \n"); scanf("%d", &n); if (n > 1000 ) printf("ERROR!The number is too large!\nPlease try again!(0~1000)\n"); else if (n < 0) printf("ERROR!The number is invalid!\nPlease try again!(0~1000)\n"); else { for (i = 0; i <= n; i++) sum += Fn(i); printf("The %d factorial's sum is %Lf\n", n, sum); } return 0; } long double Fn(int n) { int i = 1; long double temp = 1; if (n == 0) return 1; for (i = 1; i <= n; i++) temp = temp * i; return temp; }