c语言算n的阶乘的递归算法

2024-11-27 04:02:30
推荐回答(3个)
回答1:

思路:递归求阶乘函数,如果输入的参数等于1则返回1,否则返回n乘以该函数下次递归。

参考代码:

#include
int fun(int n)
{
if(n==1||n==0) return 1;//如果参数是0或者1返回1
return n*fun(n-1);//否则返回n和下次递归的积
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
/*
5
120
*/

回答2:

#include

int fac(int n)
{
if(n < 0)
{
printf("error!\n");
return -1;
}
else if(n == 0)
return 1;
else
return fac(n- 1) * n;;
}

void main()
{
int n = 0;
printf("请输入n:");
scanf(%d",&n);
printf("%d的阶乘是%d",n,fac(n));
}

随手写的,没有编译,可能有小错误

回答3:

int fn(n)
{
int y;
if(n<0){ printf("error");return -1;}
if(n==0) return 1;
else
{
y=fn(n-1)
return n*y;
}

}