[求助]怎样确定一个精度
计算e=1+1/1!+1/2!+1/3!+1/4!+......+1/n!(精度为1e-6)#include "stdio.h"
void main()
{
double sum=1.0;
int m=1,i,n;
while (sum>=1e-3)
{
for(i=n=1;i<=m;i++) n*=i;
sum+=1.0/n;
m++;
}
printf("e=%f\n",sum);
}
精度判断:判断最末添加的项是否大于要求精度,如果大于这个精度,那继续计算,如果已经小于要求的精度,就可以结束了,例子在下边的程序(VC6测试通过)
#include <stdio.h>
long jiecheng(int i)
{
if(i<=1)
return(1);
else
return(jiecheng(i-1)*i);
}
int main(void)
{
int i=1;
double e=0.000001,sum=0,x=0;
while((x=(1.0/jiecheng(i++)))>e)
{
sum+=x;
}
printf("sum=%lf\n",sum);
return 0;
}