用while或do-while语句编写程序,计算e约等于1+1⼀1!+1⼀2!+…+1⼀n!

其中在1/n!小于等于10^(-5)时结束。用C写。单循环。
2025-02-25 05:22:07
推荐回答(5个)
回答1:

方法1
#include
void main()
{
float e,a; int i,n=0; /*涉及到小数运算要用浮点型变量*/
e=1,a=1; /*a=1在后面有乘积运算*/
for(i=1;1/a>1e-5;i++) /*条件循环语句*/
{
a*=i; /*级乘的算法*/
e+=1/a ; /*e的运算方法*/
n++;
}

printf("%f,n=%d\n",e,n);
}

方法2
#include
int main( )
{
float s = 1, n = 1;int t = 1;
while ( 1 / n >= 0.00001 )
{
s+=1/n;
t++;
n=n*t;
}
printf("%f,n=%d\n", s,t);
return 0;
}

方法3
#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-5);/*判断误差是否小于给定的误差限E=0.00001 */
printf("%f,n=%d\n",e,i);
}

回答2:

//用标准C++写的,通过编译

#include
using namespace std;
int main()
{
double e;
double temp=(double)1/1;
double total=0;
int n=1;
int a=1;
while(temp>0.00001)
{total+=temp;
n++;
a*=n;
temp=(double)1/a;
}
cout<
}

回答3:

#include
void main(void)
{
float e=1,t=1;
do{
e+=1/t;
t*=t+1;
}while(t>0.00001);
printf("%f",e);
getchar();
}

回答4:

int sum;
int i;
int temp_sum;
int temp_i;

i = 1;
sum = 1;

while(1)
{
temp_i = i;
temp_sum = 1;

while(temp_i >= 1) temp_sum *= temp_i--;

if(1/temp_sum <= 0.00001) break;
else sum += 1/temp_sum;

i++;
}

回答5:

没看懂你要写什么