如下其中在1/n!小于等于10^(-5)时结束?

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

不负相思意
浏览 112回答 3
3回答

紫衣仙女

方法1#include<stdio.h>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 <stdio.h>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<stdio.h>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);}

BIG阳

//用标准C++写的,通过编译#include<iostream>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<<temp<<endl;}

繁星点点滴滴

#include<stdio.h>void main(void){float e=1,t=1;do{e+=1/t;t*=t+1;}while(t>0.00001);printf("%f",e);getchar();}
打开App,查看更多内容
随时随地看视频慕课网APP