用c語言程序,求e,用遞歸函數(shù),最易于實現(xiàn)的計算方法應該是使用e的極限近似計算,以下以n=1000近似計算之:
成都網(wǎng)站設(shè)計、做網(wǎng)站服務(wù)團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標準與要求,同時竭誠為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)把每個網(wǎng)站當做一個產(chǎn)品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!
n=1000時的近似結(jié)果
#includestdio.h
#define n 1000
void calc_e(e)
double *e;
{
if(e[0]*=1.0+1.0/e[1],--e[2]=0)
return;
else calc_e(e);
}
int main(void){
double box[3]={1.0,n,n};
calc_e(box);
printf("%lf\n",box[0]);
return 0;
}
n=10000時的近似結(jié)果
代碼如下 : 運行過了 輸出e=2.718282 不知是否滿意 望采納
#includestdio.h
void main(){
long fun(int n);
int i;
double e=0;
double eps=1e-6;//eps表示精度 此處指10的-6次方
for(i=0;1.0/fun(i)eps;i++)
{
e+=1.0/fun(i);
}
printf("e=%lf\n",e);
}
long fun(int n)//求n!的函數(shù)
{
if(n==0)
return 1;
else
return n*fun(n-1);
}
#include "stdio.h"
void main()
{
int k,j;
long m;
double e=0;
for(k=0;;k++)
{
// k!
for(j=1,m=1;j=k;j++)
{
m*=j;
}
e+=1.0/m;
if(1.0/m 0.000001)
break;
}
printf("e=%lf",e);
printf("\npress any key to exit:\n");
getch();
}
運行結(jié)果:
e=2.718282
press any key to exit:
main(){
double e=1,n=1;
int i;
for(i=1;n1e6;i++)
{n=n*i;e+=1.0/n;
printf("%d\t%.7f\n",i,e);/*觀察每次循環(huán)時e的輸出值,可刪*/
}
printf("e=%.6f\n",e); /*%.7f %.6f 控制輸出精度*/
scanf("%d");/*輸出暫停 可刪或換getchar()等*/
}
輸出:
1 2.0000000
2 2.5000000
3 2.6666667
4 2.7083333
5 2.7166667
6 2.7180556
7 2.7182540
8 2.7182788
9 2.7182815
10 2.7182818
e=2.718282
自然對數(shù)
當x趨近于正無窮或負無窮時,[1+(1/x)]^x的極限就等于e,實際上e的值就是通過這個極限而發(fā)現(xiàn)的。它是個無限不循環(huán)小數(shù)。其值約等于2.718281828...