递归:函数体调用其自身,且能结束其自身。
代码实现:
#include<stdio.h>
int f(int n);
int main()
{
int m;
printf("请输入要所求阶乘的正整数");
scanf("%d",&m);
printf("%d",f(m));
return 0;
}
int f(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*f(n-1);
}
}
解释说明:
主要是自定义代码实现为:
int f(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*f(n-1);
}
}
此处我们只考虑正整数,我们以5的阶乘示例说明。
当n=5时,不满足n==1的情况,则直接进入else中n*f(n-1)此处为5*f(4),f(4)再一次调用自定义函数f。当n=4时,不满足n==1的情况,则直接进入else中n*f(n-1)此处为4*f(3),f(3)再一次调用自定义函数f。当n=3时,不满足n==1的情况,则直接进入else中n*f(n-1)此处为3*f(2),f(2)再一次调用自定义函数f。当n=2时,不满足n==1的情况,则直接进入else中n*f(n-1)此处为2*f(1),f(1)再一次调用自定义函数f。当n=1时,满足n==1的情况,则直接归还f(1)=1。至此,终止结束。
代码已经走过n*f(4)*f(3)*f(2)*f(1)=5*4*3*2*1=120。
希望对你有帮助,语言学习贵在坚持输入和输出!