求C语言编程,e=1+1⼀1!+1⼀2!+1⼀3!+...+1⼀n!,精确度1e-6

2024-10-31 17:28:55
有5个网友回答
网友(1):

#include
using namespace std;
int main()
{
int i=1;
double e=1.0,d=1.0;
while(d>=1e-6)
{
d=d/i;
e+=d;
i++;
}
cout<<"e的值为:"<return 0;
}

网友(2):

首先每项是前一项*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
希望对你有帮助

网友(3):

我这语句最简单,你肯定看的懂
都可以运行
第一题:
#include
void main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=i;j<=7;j++)
printf("%d",j);
for(j=1;j printf("%d",j);
printf("\n");
}
}
或者用楼上的

#include
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
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
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);
}
另外,站长团上有产品团购,便宜有保证

网友(4):

希望对LZ有帮助,谢谢!-.-
#include

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);
}

网友(5):

#include

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);
}