使用递归和非递归实现求阶乘
编程思路:调用函数Factorial()
1、键入要计算的阶乘书n;
2、调用函数Factorial(),判断n是否有效,若无效返回0,否则计算tmp = tmp * n;n–;直至n=0跳出while循环并返回tmp;
3、打印结果。
编程思路:调用函数factorial()
1、键入要计算的阶乘书n;
2、调用函数factorial(),判断n是否有效,若无效返回0,否则返回n * factorial(n - 1);
3、打印结果。
具体代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#if 1
int Factorial(int n) {
int tmp = 1;
while (n > 0) {
if (n < 0) {
return 0;
}
else {
tmp = tmp * n;
n--;
}
}
return tmp;
}
#else
int factorial(int n) {
if (n <= 1) {
return 0;
}
return n * factorial(n - 1);
}
#endif
int main() {
int n;
printf("请输入要计算的阶乘数:\n");
scanf("%d", &n);
//更改为factorial()可以实现递归调用的方法
printf("%d!=%d", n, Factorial(n));
system("pause");
return 0;
}