在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归(recursive)调用。
1、直接递归
程序中用if语句来控制,只有在某一条件成立时才继续执行递归调用,否则就不再继续,这样,不会出现无终止的递归调用。
2、间接递归
3、程序示例
/*
*copyright(c) 2018,HH
*All rights reserved.
*作 者:HH
*完成日期:2018年7月31日
*版本号:v1.0
*
*问题描:直接递归
*输入描述:;
*程序输出:
*备注:单步执行,查看程序运行方式!
*/
#include <stdio.h>
long fact(int n);
int main()
{
int n;
long y;
printf("请输入正整数n,以求出n!\n");
scanf("%d",&n);
y=fact(n);
printf("所求n!的值为:%ld",y);
return 0;
}
long fact(int n)
{
long f;
if(n==1)
{
f=1;
}
else
{
f=n*fact(n-1);
}
return f;
}
程序的执行步骤如下: