求C语言编程,e=1+1/1!+1/2!+1/3!+...+1/n!,精确度1e-6
展开全部
首先每项是前一项*1/n
也就是说求完前一项后直接*1/n就可以求出下一项
根本不需要再求什么阶乘,那样麻烦,又费时又费空间的
程序如下:
double fun()
{ double e=1.0,t;
int i;
for(i=1,t=1;t>1e-6;++i)
{ t*=1.0/i;
e+=t;
}
return e;
}
用VC++6.0试过了,对的,结果是2.718282
希望对你有帮助
也就是说求完前一项后直接*1/n就可以求出下一项
根本不需要再求什么阶乘,那样麻烦,又费时又费空间的
程序如下:
double fun()
{ double e=1.0,t;
int i;
for(i=1,t=1;t>1e-6;++i)
{ t*=1.0/i;
e+=t;
}
return e;
}
用VC++6.0试过了,对的,结果是2.718282
希望对你有帮助
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-05-04
展开全部
我这语句最简单,你肯定看的懂
都可以运行
第一题:
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=i;j<=7;j++)
printf("%d",j);
for(j=1;j<i;j++)
printf("%d",j);
printf("\n");
}
}
或者用楼上的
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=i;j<=i+6;j++)
if(j<=7)
printf("%d",j);
else
printf("%d",j-7);
printf("\n");
}
}
第二题:
采用楼上,不过有几处修改
#include<stdio.h>
void main()
{
double term=1,e=1; //已经是浮点型,赋值与1就可以,不用1.0
int i=1;//i 只需设i为整型就可以了
while(term>1e-10)//term始终为正数,不用加绝对值
{
term=term/i++;
e=e+term;
}
printf("%f\n",e);
}
第三题:
#include<stdio.h>
main()
{
int sum, t, i, j;
sum=0;
t=0;
for(i=1;i<=100;i++)
{
for(j=1;j<=i;j++)
t=t+j;
sum=sum+t;
}
printf("%d",sum);
}
另外,站长团上有产品团购,便宜有保证
都可以运行
第一题:
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=i;j<=7;j++)
printf("%d",j);
for(j=1;j<i;j++)
printf("%d",j);
printf("\n");
}
}
或者用楼上的
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=i;j<=i+6;j++)
if(j<=7)
printf("%d",j);
else
printf("%d",j-7);
printf("\n");
}
}
第二题:
采用楼上,不过有几处修改
#include<stdio.h>
void main()
{
double term=1,e=1; //已经是浮点型,赋值与1就可以,不用1.0
int i=1;//i 只需设i为整型就可以了
while(term>1e-10)//term始终为正数,不用加绝对值
{
term=term/i++;
e=e+term;
}
printf("%f\n",e);
}
第三题:
#include<stdio.h>
main()
{
int sum, t, i, j;
sum=0;
t=0;
for(i=1;i<=100;i++)
{
for(j=1;j<=i;j++)
t=t+j;
sum=sum+t;
}
printf("%d",sum);
}
另外,站长团上有产品团购,便宜有保证
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
希望对LZ有帮助,谢谢!-.-
#include <stdio.h>
int fun(int n)
{
if(n==1) return 1;
else return n*fun(n-1);
}
void main()
{
int n,i;
double e=1;
printf("请输入n的大小:\n");
scanf("%d",&n);
printf("\n\n");
for(i=1;i<=n;i++)
{
e+=double(1.0/fun(i));
}
printf("e=%9.6lf\n",e);
}
#include <stdio.h>
int fun(int n)
{
if(n==1) return 1;
else return n*fun(n-1);
}
void main()
{
int n,i;
double e=1;
printf("请输入n的大小:\n");
scanf("%d",&n);
printf("\n\n");
for(i=1;i<=n;i++)
{
e+=double(1.0/fun(i));
}
printf("e=%9.6lf\n",e);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int fun(int n)
{
if(n>1)
return n*fun(n-1);
else
return 1;
}
main()
{
int n=1;
float e=1.0, s=1;
while(s>1e-6)
{
s = 1.0/fun(n++);
e += s;
}
printf("%f\n", e);
}
int fun(int n)
{
if(n>1)
return n*fun(n-1);
else
return 1;
}
main()
{
int n=1;
float e=1.0, s=1;
while(s>1e-6)
{
s = 1.0/fun(n++);
e += s;
}
printf("%f\n", e);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询