// 阶乘问题递归实现
int factorial0(int n) {
if (n == 0) return 1;
return n*factorial0(n-1);
}
// 阶乘问题非递归实现
int factorial1(int n) {
int result;
for (result=1; n>0; result*=n,n--);
return result;
}
int main() {
printf("0: %d\n", factorial0(0));
printf("1: %d\n", factorial0(1));
printf("2: %d\n", factorial0(2));
printf("5: %d\n", factorial0(5));
printf("10: %d\n", factorial0(10));
printf("------\n");
printf("0: %d\n", factorial1(0));
printf("1: %d\n", factorial1(1));
printf("2: %d\n", factorial1(2));
printf("5: %d\n", factorial1(5));
printf("10: %d\n", factorial1(10));
return 0;
}