编程计算S= 1!/(1+2)+ 2!/(1+2+3)+ 3!/(1+2+3+4) + …. + 20!/(1+2+3+4+…..+21)

如题所述

#include "stdio.h"
float fac1( int x)
{if(x==1)return 1;
else return x*fac1(x-1);
}
float fac2(int y)
{int sum=0,i;
for(i=1;i<=y;i++)
sum+=i;
return sum;
}
int main()
{ float result=0.0;
int a;
for(a=1;a<=12;a++) //这里只尝试到12
{result+=fac1(a)/fac2(a+1);}

printf("%f",result);

return 0;

}
这个尝试到12的阶乘,后边的好像数据变得很大,估计就会出现错误!仅供参考!
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-29
刚写的,n改小了,测试过,应该对
#include<stdio.h>
int main()
{
float s=0,a=0,b=1;
int n;
for(n=1;n<=20;n++)
{
a=a+n;
b=b*n;

s=s+(b/(a+n+1));
}
printf("%f",s);
return 0;
}
相似回答
大家正在搜