杀出银河系bilibili:C语言问题?

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 17:43:23
编程,求e的值。e=1+1/1!+1/2!+1/3!+…+1/n!
要求:(1)用 while 循环,求至最后一项的值小于10-6
(2) 用for循环,计算前70项。

1)楼上的第一个用计算机实现是不可行的,因为1000000!以这种方法不可能在很短的时间内算出来。
#include <stdio.h>

int main()
{
int a=1;
double e=1.;
while(1.0/a>10e-6)
{
e+=1.0/a;
a*=(a+1);
}
printf("e=%f",e);
getch();
}

2)
#include <stdio.h>

int main()
{
int a=1,b=1;
double e=1;
for(;b<=70;a*=a+1,b++)
e+=1.0/a;
printf("e=%f",e);
getch();
}

(1)
#include <stdio.h>

int main()
{
int a=1;
double e=1;
for(;a<1000000;a*=a+1)
e+=1.0/a;
printf("e=%f",e);
}

(2)
#include <stdio.h>

int main()
{
int a=1,b=1;
double e=1;
for(;b<=70;a*=a+1,b++)
e+=1.0/a;
printf("e=%f",e);
}