c语言 求 阶乘 n!/m!(n-m)! 用递归函数求,帮我看看哪错了?

如题所述

n的阶乘,就是从1开始乘到n,即1*2*3*...*(n-1)*n。
即n!=1*2*3*...*(n-1)*n。
而(n-1)!=1*2*3*...*(n-1)。
所以可以得出,n!=(n-1)!
*
n。
由这个概念,可以得出递归求阶乘函数fact的算法:
1
如果传入参数为0或1,返回1;
2
对于任意的n,返回n*fact(n-1)。
代码如下:
int fact(int n)
{
if(n == 0 || n == 1) return 1;
return n*(fact(n-1));
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-24
scanf少个%d吧
不需要这么多函数。。。直接一个求阶乘的就行。
#include

int
fun(int
a)
{
int
f;
if
(a==1||a==0)
f=1;
else
f=a*fun(a-1);
return
f;
}
void
main()
{
int
n,m;
float
x;
printf("输入2个数:\n");
scanf("%d%d",&n,%m);
x=fun(n)/fun(m)*fun(n-m);
printf("结果是:%f\n",x);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网