编一个函数n!。主函数求5!*7!/9!。(递归法怎么做呢,做到主函数后面的for就不会了)求大神解答啊

 我来答
花降如雪秋风锤
高粉答主

2019-09-21 · 甘于平凡,却不甘于平凡地溃败。
花降如雪秋风锤
采纳数:276 获赞数:83249

向TA提问 私信TA
展开全部

可以将递归数的计算写成一个子函数,然后直接调用,阶乘计算函数如下:

#include <stdio.h>
int fac_n (int n )
{
int s = 1 , i ;
for (i=1 ; i<=n ; i++ )
{
s=s*i;
}
return s ;
}

主函数中直接进行调用计算即可,如果所用的编程软件内有阶乘计算函数FUNC,也可以直接进行调用,计算公式如下:

fac_n(5)*fac_n(7)/fac_n(9)

扩展资料:

一个含直接或间接调用本函数语句的函数被称之为递归函数,它必须满足以下两个条件:

1、在每一次调用自己时,必须是(在某种意义上)更接近于解;

2、必须有一个终止处理或计算的准则。

参考资料来源:百度百科-递归函数

White_MouseYBZ
推荐于2017-09-29 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6423万
展开全部

有了n!函数,干嘛还要for?

#include "stdio.h"
int f(int n){
if(n==1 || n==0)
return 1;
return n*f(n-1);
}
int main(int argv,char *argc[]){
printf("5!*7!/9! = %g\n",f(5)*f(7)/(f(9)+0.0));
return 0;
}

运行结果:

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-06-02
展开全部
输出 factor(5)*factor(7)/factor(9) 不就行了
追问
在printf那里输出这个吗,打上去了,可是结果不对,运行结果时我输入的5
前面是不是还差点什么
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式