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

 我来答
985967518
推荐于2017-10-10 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109850
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

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

参考代码:

#include<stdio.h>
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
*/
董俊锟djk
2012-11-07 · TA获得超过2550个赞
知道小有建树答主
回答量:1231
采纳率:66%
帮助的人:1003万
展开全部
#include<stdio.h>

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));
}

随手写的,没有编译,可能有小错误
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lileitodev
2012-11-07 · TA获得超过159个赞
知道小有建树答主
回答量:171
采纳率:33%
帮助的人:111万
展开全部
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;
}

}
追问
thank you
追答
这个是调试完的请看看
#include
int fn(n);
int main(void)
{
printf("%d",fn(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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式