十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
创新互联主营东川网站建设的网络公司,主营网站建设方案,app软件开发公司,东川h5微信平台小程序开发搭建,东川网站营销推广欢迎东川等地区企业咨询
int main(){
float p=1,a=1,e=1;
while(1/a=1e-6){
a*=p;
e+=1/a;
p++;}
printf("e=%f\n",e);
return 0;
}
#include int main(){ double frac=1.0,x=1.0,num=1.0,e=0.0; while(x=1e-6) { e+=x; num++; frac*=num; x=1.0/frac; } printf("e=:%lf",e);}
//C语言中,求e=1/1!+1/2!+…+1/n!精确到10ˉ8
#include stdio.h
int main(void)
{
long n = 0, ns = 1; double x = 0.0f, y=0.0f, e = 1.0f;
for(;;) {
n++; /*计算n*/
ns *= n; /*计算n!*/
x = ns;
y = 1.0f / x; /*计算1/n!*/
if (y 1e-8) break; /*如果足够小则停止*/
e += y; /*计算e*/
}
printf("%9.8f\n", e); /*输出结果*/
return 0;
}
参考自:
#include stdio.h
unsigned long jc(int n);
void fun(int n)
{
double e = 1.0;
int i;
for(i=1;i=n;i++)
{
e = e+1.0/jc(i);
}
printf("%g\n",e);
}
unsigned long jc(int n)
{
if(n == 1)
return 1;
else
return n*jc(n-1);
}
int main( )
{
int n;
while(scanf("%d",n)!=EOF)
{
fun(n);
}
return 0;
}
分析:有两种情况
(1)计算前n项
源程序如下:
#includestdio.h
int
main()
{
double
item=1,sum=1;
int
n,i;
scanf("%d",n);
for(i=1;i=n;i++)
{
item*=1.0/i;
sum+=item;
}
printf("The
sum
is
%lf\n",sum);
return
0;
}
(2)计算各项直到最后一项小于10^(-4)
源程序如下:
#includestdio.h
#includemath.h
int
main()
{
double
item=1,sum=1,n=1;
do
{
item*=1.0/n;
sum+=item;
n++;
}while(fabs(item)=1e-4);
printf("The
sum
is
%lf\n",sum);
return
0;
}
这题目有点奇怪:计算精度到10^-4为止,输出却要到12位小数(要那么多位不准确的数?)
#includestdio.h
int main()
{int i,t=1;
double e=0;
for(i=1;t10000;i++)
{e+=1.0/t;
t*=i;
}
printf("%.12lf\n",e);
return 0;
}