#include <stdio.h>
int fact1(int);
int fact2(int);
// 方法1
int fact1(int num)
{
int result = 0;
if (num > 0) {
result = num * fact1(num - 1);
} else {
result = 1;
}
return result;
}
// 方法2
int fact2(int num)
{
if (num > 1) {
return num * fact2(num - 1);
} else {
return 1;
}
}
int main(void)
{
int num;
printf("请输入一个数字:");
scanf("%d", &num);
printf("函数1阶乘结果:%d\n", fact1(num));
printf("函数2阶乘结果:%d\n", fact2(num));
}
output:
[root@centos8 ~]# gcc r.c && ./a.out
请输入一个数字:5
函数1阶乘结果:120
函数2阶乘结果:120
原文:https://blog.51cto.com/sndapk/2609533