递归和非递归分别实现求n的阶乘(不考虑溢出的问题)

时间:2022-06-26 00:51:38

1、非递归

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
/*递归和非递归分别实现求n的阶乘(不考虑溢出的问题)*/
//非递归方式
while (1)
{
int n = 1;
int i = 2;
int a = 0;
printf("请输入一个整数:>");
scanf("%d", &a);
while (i <= a)
{
n = n * i;
i = i + 1;
}
printf("%d\n", n);
}
return 0;
}

2、递归

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int jiecheng(int a)
{
if (a==1)
{
return 1;
}
return a * jiecheng(a - 1);
}
int main()
{
/*递归和非递归分别实现求n的阶乘(不考虑溢出的问题)*/
//递归方式
while (1)
{
int a = 0;
printf("请输入一个整数:>");
scanf("%d", &a);
printf("%d\n", jiecheng(a));
}
return 0;
}