m!+n!用c语言怎么写程序?

如题所述

1、写一个计算x!的子函数,采用递归的思路,具体如下:
int fun(int x)
{
int result;
if((x==0)||(x==1)) result=1; //出口
else
result=fun(x)*fun(x-1); //缩小规模
return result;
}
用的时候只要在主函数中调用fun(m)+fun(n)就可以了,这样不管加几项都可以通过调用这个函数实现。
2、递归是很有用的算法,LZ可以多看下,像这种求阶乘的用递归有助于你理解,可以翻翻书,一般书上都有
3、最后祝学业进步~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-27
int count(int m, int n)
{
int mm, nn, index;

mm = 1;
for (index = 1; index <= m; index++)
{
mm *= index;
}
for (index = 1; index <= n; index++)
{
nn *= index;
}

return mm+nn;
}
第2个回答  2011-03-27
用数组:
m=data[10];//data[0]个位,data[1]十位,data[2]千位,data[3]万位...依次类推
当m=1;
m!=data[0]=1;
当m=2
m!=data[0]*2=1*2 =2;
当m=3
m!=data[0]*3=1*2*3=6;
当m=4
m!=data[0]*4=6*4=24;则data[1]=2,data[0]=4;
当m=5
m!=data[0]*5=4*5 = 20;则data[1]+=2,data[0]=0,
data[1]*5=2*5=10,则data[2]+=1,data[1]+=0,
上面就是思路;
理论可以计算任意数的阶乘如123456789!的阶乘,只需要把数组定义到足够长就是了
第3个回答  2011-03-27
一楼正解。

相关了解……

你可能感兴趣的内容

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