最好的方法是用递归
其次是用while(因为是条件循环1/n!<10的-7次方)
结果你非得用for循环,很麻烦的~
如果是我也把for循环的条件部分直接写true的死循环,然后根据条件break
写代码太麻烦了 思路如下:
整个题目分为两个部分,一部分是求阶乘,一部分是求和。
求阶乘的部分可以写在子函数里。
阶乘自然用到累乘器 int y=1;
之后就是for循环:
for(int i=1;i<n+1;i++)
y=i;
关于return 的是y 还是1/y 看你自己的兴致了。
这个n可以通过函数参数传进来。
求和的部分自然也需要用到累加器:int e=0;
然后for(int i=1;true;i++)e=1/y(i)
假设y就是封装的子函数
然后再循环体中加入判断条件break一下跳出循环即可;
最后用printf打印出来就可以了。
这题本来就用面向过程的方法就能解决,而且还要求用printf打印出来,完全没必要用c++
用c语言就可以了。
要求:误差小于000001
Private Sub Command1_Click()
Dim i%, n&, t!, e!
e = 2
i = 1
t = 1
Do While t > 000001
i = i + 1
t = t / i
e = e + t
Loop
Print "计算了"; i; "项目和是:"; e
Print Exp(1) ‘与上句输出值进行对比以证明算法的正确性
End Sub
这种算法是有问题的,不能达到指定的精度的!t <= 000001 时结束了循环,这个只是到这一项为止,该项的值比精度小,但是不能保证被舍掉的后面部分(无穷项之和)阶乘的倒数之和比指定的精度小!
#include<stdioh> int main(){ int n ,i,t=1; float e=1; scanf("%d", &n); for(i=1;i<=n;i++){ t=i; e+=10/t; } printf("%f", e); return 0; }
麻烦采纳,谢谢!
代码如下 : 运行过了 输出e=2718282 不知是否满意 望采纳
#include<stdioh>
void main(){
long fun(int n);
int i;
double e=0;
double eps=1e-6;//eps表示精度 此处指10的-6次方
for(i=0;10/fun(i)>eps;i++)
{
e+=10/fun(i);
}
printf("e=%lf\n",e);
}
long fun(int n)//求n!的函数
{
if(n==0)
return 1;
else
return nfun(n-1);
}
n值是确定的吧,不然程序会持续的算下去,不符合程序的有穷性
根据题目提供以下代码:
#include<iostream>
#include<stdlibh>
using namespace std;
int main()
{
int n,sum=1,i;
float e=0;
cout<<"请输入n值:";
cin>>n;
for(i=1;i<=n;i++)
{
sum=i;
e+=101/sum;
}
cout<<"e="<<1+e<<endl;
system("PAUSE");
return 0;
}
#include<stdioh>
int main( )
{
int i,j;
long long fact;
long double sum=10;
for (i=1;i<=50;i++)
{
fact = 1;
for(j=1;j<=i;j++)
{
fact =j;
}
sum = sum + ( (long double)1/(long double)fact);
printf("sum=%019Lf\n",sum);
}
printf(" e =%19Lf\n",sum);
// printf("%ld",sizeof(long double));
}
while:::
{
int i=1, j;
long long fact = 1;
long double sum=10 ;
while((float)1/(float)fact>=00001)
{
fact = 10;
j=1;
while( j<=i)
{
fact =j;
j++;
}
i++;
sum +=((long double)1/(long double)fact);
printf("sum=%019Lf\n",sum);
}
printf("sum=%19Lf\n",sum);
}
以上就是关于编写c++源程序计算e=1+1/1!+1/2!+1/3!+....+1/n!+.....计算e的值,直到1/n!<10的-7,用do while全部的内容,包括:编写c++源程序计算e=1+1/1!+1/2!+1/3!+....+1/n!+.....计算e的值,直到1/n!<10的-7,用do while、编写程序求自然对数e的近似值、e=1+1/1!+1/2!+1/3!+....1/n! 编写程序用这个公式计算e的近似值这里是n用户输入的整数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)