
2个回答
展开全部
#include <stdio.h>
long fact(int n) //递归函数求解阶乘
{
if(n<0)//输入数据检测
{
printf("输入数据n应>=0!\n");
return -1;
}
if(n<=1) //0!=1,1!=1
return 1;
else
return (n*fact(n-1)); //递归调用
}
int main(int argc, char *argv[])
{
printf("5!=%ld\n",fact(10));//打印5!
return 0;
}
c语言中,函数Func(Type a,……)直接或间接调用函数自身,则该函数称为递归函数。递归函数必须满足两个条件,
1、每一次调用函数自身都更接近于解;
2、函数 必须有一个明确的终止处理或计算的准则,比如本例中0!=1,1!=1。
long fact(int n) //递归函数求解阶乘
{
if(n<0)//输入数据检测
{
printf("输入数据n应>=0!\n");
return -1;
}
if(n<=1) //0!=1,1!=1
return 1;
else
return (n*fact(n-1)); //递归调用
}
int main(int argc, char *argv[])
{
printf("5!=%ld\n",fact(10));//打印5!
return 0;
}
c语言中,函数Func(Type a,……)直接或间接调用函数自身,则该函数称为递归函数。递归函数必须满足两个条件,
1、每一次调用函数自身都更接近于解;
2、函数 必须有一个明确的终止处理或计算的准则,比如本例中0!=1,1!=1。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询