#include
成都创新互联公司公司2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元荣昌做网站,已为上家服务,为荣昌各地企业和个人服务,联系电话:18980820575
main(){
int
n,i,temp=1;
double
sum=0;
printf("请输入n的值");
scanf("%d",n);
for(i=1;i=n;i++){
temp*=i;
sum
+=
0.1/temp;
//注意这个0.1,否则数据类型会捣乱……
}
printf("1!+1/2!+1/3!+......+1/n!的值为:%f\n",sum);
}
^_^
~~
你在定义一个sum用来保存阶乘,整个的代码
#include
void
main()
{
double
s=0,i,n;
double
sum
=
1;
printf("请输入n的大小");
scanf("%lf",n);
for(i
=
1;
i
=
n;
i++)
{
sum
=
sum*i;
s
+=
1/sum;
}
printf("计算的结果为%.3f",s);
}
#includestdio.h
#if 0
double fun(int a)
{
int i,j;
double m,S=1.0;
for(i=2;i=a;i++)
{
m=1.0;
for(j=1;j=i;j++)//--变++不变也可
{
m*=j;//改了一下
}
S+=1.0/m;
}
return S;
}
#endif
//优化了一下
double fun(int a)
{
int i,j;
double m=1.0,S=1.0;
for(i=1;i=a;i++)//从0算起,从1算起的话改回:for(i=2;i=a;i++)
{
m*=i; // 求阶乘
S+=1.0/m;//倒数相加
}
return S;
}
main()
{
int n,sum;
scanf("%d",n);
sum=fun(n);
printf("%d\n",sum);
}
你的求倒数算法的结果为零,因为使用了整数相除结果为整除的商。
另外一重循环就可以了!
/*factorial*/
#includestdio.h
float Factorial(int n);//求阶乘的函数
float Sum(int n);//求阶乘前n项倒数和的函数
int main()
{
int i;
int num;
scanf("%d",num);
for( i=1;inum+1;++i)
{
printf("1/%d! = ",i);//输出 “n!”
printf("%f\n",1/Factorial(i));//输出n!的值
}
for(i=1;inum;++i)
printf("1/%d!+",i);//输出1!+1/2!+…+1/(n-1)!+
printf("%d!=%f\n", i,Sum(i) );//输出1/n!=前n项的阶乘倒数和
return 0;
}
float Factorial(int n)
{
if(n==0||n==1)
return 1;//0!=1||1!=1
else return n*Factorial(n-1);//其他的阶乘n!=n*(n-1)*…1
}
float Sum(int n)
{
float N=1/Factorial(n);//用N代表数n的阶乘的倒数
if(N==1) return 1;//如果N=1则说明只有一项即n=1
else return N+Sum(n-1);//其他的情况返回前n项阶乘倒数之和
}