为什么这个不能达到目的。#include<iostream>using namespace std;long f(int n){ long result=1; for(int i=1;i<=n;i++)result=result*i; return 1.0/result;}int main(){ double sum=1; for(int i=1;(1.0/f(1))>1e-8;i++){sum=sum+1.0/f(i);} cout<<"e="<<sum<<endl; return 0;}
把f中的return 1.0/result;改为return result;。
把主函数中for(int i=1;(1.0/f(1))>1e-8;i++)中的f(1)改为f(i)。
谢谢,可是要怎样才能使输出的e精确到小数点后8位呢?
...e的近似值计算公式为:e=1+1\/1!+1\/2!+……rn<1e-8时停止。
把f中的return 1.0\/result;改为return result;。把主函数中for(int i=1;(1.0\/f(1))>1e-8;i++)中的f(1)改为f(i)。
c++ 计算e的近似值,求指导
公式应该是:e=1+1\/1!+1\/2!+1\/3!+..+1\/n!代码:include "iostream"using namespace std;int fact(int n)\/\/求阶乘 { int sum=1;int i;if(n==0)return 1;else { for(i=1;i<=n;i++)sum*=i;return sum;} } int main(){ int i=1,j=1,n;double e,t=0;cin>>n;e...
...e=1+1\/(1!)+1\/(2!+1\/(3!)+... 求e的 近似值...
if(a-flag<1e-6)break;} cout<<"根据公式e=1+1\/(1!)+1\/(2!+1\/(3!)+... e的近似值为:"<<a<<endl;}
C++ 按下列公式,求e的近似值。e=1+1\/1!+1\/2!+1\/3!+…+1\/n!
include <iostream>using namespace std;float CalcE(int n){ float e = 1.0f; \/\/初始值为1 float f = 1.0f; for(int i=1; i<=n; ++i) { f *= i; e += 1\/f; } cout<<e<<endl;}int main(int argc, char *argv[]){ CalcE(10); cin....
C++编程:根据公式e=1+1\/1!+1\/2!+1\/3!+...+1\/n!,求e的近似值,精确到最后...
代码文本:\/\/#include "stdafx.h"\/\/vc++ 6.0? Maybe should add this line.include <iostream> using namespace std;int main(int argc,char *argv[]){ double e,t;int n;for(t=e=n=1;t>=1.0E-5;e+=t\/=n++);cout << "e≈" << e << endl;return 0;} ...
C++编程 下列级数计算e的近似值,是e有小数点后1000位有效数字。 这道题...
这个算法是用来计算自然对数e的近似值,结果存在一个内存数组里。数学思想是基于欧拉1748年把牛顿的二项式定理改进的一个公式(3)这个公式使得欧拉把e精确到23位小数点。受欧拉公式的启发,衍生出来很多变种。其中的一个变种是 本算法就是对(4)公式的翻译。第一个外循环是累乘计算(4)式的每一个...
根据公式e=1\/1!+1\/2!+1\/3!……求e的近似值,精度要求为10-6
正确的:e=1+1\/1!+1\/2!+1\/3!+...》C++代码(while循环)》》:include<iostream.h> void main(){ double e=1;double jc=1;\/\/求阶乘,并存入jc中 int i=1;while(1\/jc>=1e-6){ e=e+1\/jc;i++;jc=jc*i;} cout<<"e="<<e<<endl;} 》C代码》》:include<stdio.h> voi...
C++编程 按下列级数计算e的近似值,是e有小数点后1000位有效数字。
回答:那只能用高精度算法了。
C++求e的近似值
include "stdafx.h"#include<iostream>using namespace std;void main(){int a, i;float y=0;for (i = 1; i <= 100; i++){a=1;for(int j=2;j<=i;j++)a *= j;y += 1.0\/a;if(1.0\/a < 0.000001)break;}cout << "e=" << y+1<< endl;} 请采纳 ...
用C++实现:按下面级数公式求e的近似值,小数点后保留1000位有效数字,跪 ...
include<stdio.h> int main(){ int i,n,b=1,s=1;float sum=0;scanf("%d",&n);for(i=1;i<=n;i++){ b*=i; \/\/这个b是阶乘 sum+=1.0\/b*s;s*=-1; \/\/这个是正负号 } printf("%f\\n",sum);return 0;}