編程精確求e
main(){
double e=1,n=1;
int i;
for(i=1;n<1e6;i++)
{n=n*i;e+=1.0/n;
printf("%d\t%.7f\n",i,e);/*觀察每次循環時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
自然對數
當x趨近於正無窮或負無窮時,[1+(1/x)]^x的極限就等於e,實際上e的值就是通過這個極限而發現的。它是個無限不循環小數。其值約等於2.718281828...
❷ C語言編寫程序,求e得值,用for循環,計算前五十項。下面是我寫的,輸出結果不對,實在想不出來,求解。
你的程序寫得太過於復雜了。 從簡到繁易,從繁化簡難。
另外++一般是用於整型數,如果double 建議用 +=1
#include<stdio.h>
#include<math.h>
int main() {
int i;
double e=1.0, k=1.0;
for(i=1;i<50;++i) {
k*=i;
e+=1.0/k;
}
printf("e=%lf ",e);
return 0;
}
❸ c語言編程求自然數e
#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();
}
運行結果:
e=2.718282
press any key to exit: