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 ",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


}

原文地址:https://www.cnblogs.com/xuelanga000/p/11305324.html