编辑代码

#include <stdio.h>

// 阶乘问题递归实现
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;
}