编写c++源程序计算e=1+1/1!+1/2!+1/3!+....+1/n!+.....的近似值,要求误差小于0.0000001

必须c++语言,任何其他语言不要

第1个回答  2008-05-02
#include "stdio.h"
double fac(int a)
{
double n;
if(a==0)n=1;
else
if(a==1)n=1;
else
n=fac(a-1)*a;
return(n);
}
main()
{
int i,n;
double s=0,a=1.0,t;
printf("please input a number:");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
t=fac(i);
s+=a/t;
}
printf("e=1+1/1!+1/2!+1/3!+....+1/n!+.....=%20.19f",s);
}
我还没编译过,你去编译看看,应该不会有大的错误,
第2个回答  2008-04-19
#include"iostream.h"
void main()
{
int n,e;
long factorial(int x)
{long k
if(x=0)
k=1;
else
k=x*factorial(x-1);
return k;}
int precision(7)// 定义浮点数有效位数为7
for(n=0;1/facotial(n)>0.0000001;)
{e+=facotial(n);
n++;}
cout<<e<<endl;
}

我没编译过,你去编译看看,应该不会有大的错误,
第3个回答  2008-04-19
#include "stdio.h"
double fac(int a)
{
double n;
if(a==0)n=1;
else
if(a==1)n=1;
else
n=fac(a-1)*a;
return(n);
}
main()
{
int i,n;
double s=0,a=1.0,t;
printf("please input a number:");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
t=fac(i);
s+=a/t;
}
printf("e=1+1/1!+1/2!+1/3!+....+1/n!+.....=%20.19f",s);
}
第4个回答  2008-04-19
#include "stdio.h"
float fun(int n){
float t=1.0;
int i;
for(i=1;i<=n;i++){
t*=i;}
return t;}
void main(){
float e=1.0;
int n=1;
while(1/fun(n)>=10e-7){
e+=1.0/fun(n);
n++;}
printf("%f",e);
}
第5个回答  2008-04-19
#include<iosream.h>
float f(float);
void main()
{
float n,result=1;
for(n=1;f(n)<=1e-7;n++)
result+=f(n);
cout<<"计算结果为:"<<result<<endl;

}
float f(float n)
{
int i;
float r=1;
for(i=1;i<=n;i++ )
{
r*=i;
}
return (1/r);
}
相似回答