用递归和循环的方法:实现求n的阶乘
区别:用递归求阶乘不用创建临时变量,且相对来说,代码比较简单。
用循环求阶乘需要创建两个变量,代码也比较简单,各有利弊。
#include<stdio.h>
#include<stdlib.h>
int jiechen(int n)//递归求阶乘
{
if (n == 1)
{
return 1;
}
return n * jiechen(n - 1);
}
int jiechen_xun(int n)//循环求阶乘
{
int ret = 1;
for (int i = 1; i <= n; ++i)
{
ret = ret * i;
}
return ret;
}
int main()
{
printf("%d\n", jiechen(10));
printf("%d\n", jiechen_xun(10));
system("pause");
return 0;
}
附上运行结果:
该结果是10的阶乘。如果要求n的阶乘,只要在main()函数中添加输入函数就行了
scanf("%d",&n);这个不是重点就不写了,主要是两个函数中的内容。