❶ 用C++編程求e^x的近似值,要求精確度<=10^(-8),以下是我的編程:
在頭文件里加上這個:#include"iomanip.h"
最後一行改為:cout<<setprecision(11)<<"e="<<e<<endl;
註:setprecision(num),num是幾,小數點後就保留num-1位!
另外我是一名軟體工程專業的大學生,以後有問題可以問我,我的郵箱是[email protected]
❷ C語言編程序,求e的近似值e≈1+1/2!+1/3!+…+1/n!(1)計算前20項(2)計算各項直到最後一項小於10^(-4)為
這個是保留兩位小數。忘採納啊
#include "stdio.h"
main()
{
int n,s;
int i,j;
doublesum,item;
sum=1;
printf("Entern:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
item=1;
for(j=1;j<=i;j++)
{
item=item*j;
}
sum=sum+1/item;
}
printf("1+1!+1/2!+1/3!.....+1/n!=%.2f",sum);
}
❸ 編寫程序求自然對數e的近似值
演算法說明
累加形式:V=V+e
連乘形式:V=V*e
其中:V是變數,e是遞增表達式。累加和連乘一般通過循環結構來實現。
注意:需在執行循環體前對變數V賦初值。一般的,累加時置初值0;連乘時置初值為1.
舉例
求N!的結果。
Private Sub Command1_Click()
Dim n%, i%, s&
n = Val(InputBox("輸入n"))
s = 1
For i = 1 To n
s = s * i
Next i
Print s
End Sub
錯誤的寫法:
Private Sub Command1_Click()
Dim n%, i%, s&
n = Val(InputBox("輸入n"))
For i = 1 To n
s = 1 『賦初值語句位置不對!
s = s * i
Next i
Print s 『輸出s的值為n,而不是n!
End Sub
應用舉例
根據下列公式,求自然對數e的的近似值。
要求:誤差小於0.00001
Private Sub Command1_Click()
Dim i%, n&, t!, e!
e = 2
i = 1
t = 1
Do While t > 0.00001
i = i + 1
t = t / i
e = e + t
Loop
Print "計算了"; i; "項目和是:"; e
Print Exp(1) 『與上句輸出值進行對比以證明演算法的正確性
End Sub
解題技巧
1) 由於這類題目往往是根據精度要求來求值,因此我們不能預知具體循環次數,所以這類題目一般用Do循環,很少用For循環。設定循環變數和通項變數,注意各變數的初值;
2) 分解通項表達式中各因子,並分別將各因子用循環變數表示;
3) 如果步驟2中有的因子比較復雜,難以直接用變數表示,此時可以考慮使用Function過程;
4) 根據步驟1、2、3,寫出通項表達式;
5) 根據精度要求(往往是通項小於10負多少次方這樣一個關系表達式),寫出一條滿足精度要求後跳出循環的語句。通常是用:if 通項表達式>10^(-N) then exit do ,注意這句話一般需放在累加或者連乘式之前。
❹ C語言:求e的近似值
你寫的是使用泰勒公式求e,少一個1。
正確的: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>
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;
}
printf("e=%f\n",e);
}
❺ c++ 計算e的近似值,求指導
公式應該是:e=1+1/1!+1/2!+1/3!+..+1/n!
代碼:
#include"iostream"
usingnamespacestd;
intfact(intn)//求階乘
{
intsum=1;
inti;
if(n==0)
return1;
else
{
for(i=1;i<=n;i++)
sum*=i;
returnsum;
}
}
intmain()
{
inti=1,j=1,n;
doublee,t=0;
cin>>n;
e=0;
for(i=0;i<=n;i++)
{
t+=1.0/fact(i);
}
e=e+t;
cout<<"e="<<e<<endl;
return0;
}
結果:
❻ 編程求e的近似值 e=1+1!+1/2!+1/3!+……+1/10/那為高手能用編程的方法把e 算出來最後結果是2點多
剛才回答的少+了個1,不好意思啊,呵呵,剛才沒看清 把前面的那個1漏掉了
Private Sub Form_Click()
For i = 1 To 10
s = s + i ^ 2
Sum = Sum + 1 / s
Next
Print Sum +1
End Sub
❼ 求e的近似值 c語言
#include int main(){ double frac=1.0,x=1.0,num=1.0,e=0.0; while(x>=1e-6) { e+=x; num++; frac*=num; x=1.0/frac; } printf("e=:%lf",e);}
❽ python編程 求e的近似值
def f(x,n):
s=1
for i in range(1,n+1):
s=s*i
a=1/s
return a
def e(n):
s=1
if n<=0:
print('不符合要求')
elif n>1000:
print('不符合要求')
elif isinstance(n,float):
print('不符合要求')
else:
for i in range(1,n+1):
s=f(i,i)+s
print('%.8f'%s)
if __name__=='__main__':
n=int(input('請錄入飛負正數<=1000\n'))
e(n)
我寫的,格式化下,看看測試點對不
❾ 編程求e的近似值 e=1+1!+1/2!+1/3!+……+1/10/那為高手能幫我把這道程序編出來 謝謝了
Private Sub Form_Click()
For i = 1 To 10
s = s + i ^ 2
Sum = Sum + 1 / s
Next
Print Sum
End Sub
❿ VB中e的近似值怎麼編程 求高手指點
假定窗體form1上有一個label1控制項用來顯示結果,那麼,只需要在form1_load()中加入以下語句即可:
label1.caption
=
round(
exp(
1
)
,
5
)