这题目有点奇怪:计算精度到10^-4为止,输出却要到12位小数(要那么多位不准确的数?)
#include<stdio.h>int main()
{int i,t=1
double e=0
for(i=1t<10000i++)
{e+=1.0/t
t*=i
}
printf("%.12lf\n",e)
return 0
}
分析:有两种情况(1)计算前n项
源程序如下:
#include<stdio.h>
int
main()
{
double
item=1,sum=1
int
n,i
scanf("%d",&n)
for(i=1i<=ni++)
{
item*=1.0/i
sum+=item
}
printf("The
sum
is
%lf\n",sum)
return
0
}
(2)计算各项直到最后一项小于10^(-4)
源程序如下:
#include<stdio.h>
#include<math.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
}