C语言练习之 求阶乘
#include <stdio.h>
#define DEBUG
//循环的方式
int fanc(int arg);
int main(int argc, char *argv) {
int num;
int result;
scanf("%d", &num);
result=fanc(num);
printf("%d\n",result);
return 0;
}
int fanc(int arg) {
#ifdef DEBUG
int n = 1;
if (arg == 0 || arg == 1) {
return n;
}
else
{
do
{
n *= arg;
} while (--arg);
return n;
}
#else //递归,这种情况下会牺牲效率
if (arg == 0 || arg == 1) {
return 1;
}
else
{
return arg*fanc(arg - 1);
}
#endif // DEBUG
}