#include
void main()
{
int i=1,j=1;
float e=1.0,k;
do{
j=i*j;
k=1.0/j;
e=e+k;
i++;
}while(k>1e-4);//判断误差是否小于给定的误差限E=0.0001
printf("%f\n",e);
}
#include
#include
#define E 0.0001
int factorial(int i)
{
if((i==1)||(i==0)) return 1;
return i*factorial(i-1);
}
int main()
{
float e=1;
int i=1;
float temp;
while((temp=(float)1/factorial(i++)) >= E) e+=temp;
printf("now e=%f\n",e);
system("pause");
}
这个题主要是递归求阶乘,其实很简单~!