# C習題3.46-b
###### tags: `C習題`
## 題目:
> 寫一個程式計算數學常數e的趨近值
## code:
```c=
#include <stdio.h>
int main()
{
int n = 1, k = 1 ; /*n to store n! value, e to store exp value, k as counter*/
float e =1;
printf("It will print a Euler's number :\n");
while( k < 10 ) {
n = n * k ;
/*printf("n = %d\n",n);
printf("1/n = %f\n", (float) 1/n);*/
e = e + ( (float)1/n ) ; /*int to float transfer, otherwise below decible will not add in*/
/*printf("e = %.6f\n",e);*/
k = k + 1 ;
/*printf("k = %d\n", k);*/
}
printf("Euler's number = %.6f\n",e);
return 0;
}
```
## 心得
1. 想了有點久以為要用兩個迴圈, 但其實可以只用1個重複結構就可做成
2. 由拉數雖然是無窮累加, 但其實累加到10階乘就很接近平常看到的e = 2.71
3. 卡關的地方在於int做分母計算後的結果要轉換型態為float, 才會被運算進去,
不然都是介於0~1之間的數, 被int認為都是0