递归实现
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
#include <math.h>
int factorial(int n){
if (n <= 1)
return 1;
else
return n*factorial(n - 1);
}
int main(){
int num,n;
printf("输入你想求一个数的阶乘:");
scanf("%d", &n);
num = factorial(n);
printf("%d", num);
system("pause");;
return 0;
}
非递归实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
int factorial(int n){
int result = 1;
while (n > 1){
result *= n;
n -= 1;
}
return result;
}
int main(){
int num, n;
printf("输入你想求一个数的阶乘:");
scanf("%d", &n);
num = factorial(n);
printf("%d", num);
system("pause");;
return 0;
}
阶乘计算:递归与非递归方法
本文介绍了两种不同的阶乘计算方法:递归实现与非递归实现。递归方法通过函数调用自身来实现,而非递归方法则使用循环结构。两种方法各有优缺点,适用于不同场景。
3087

被折叠的 条评论
为什么被折叠?



