example6.c |
/* example6.c -- 自然対数の底 e を級数で計算する。 */ #include <stdio.h> int main() { int k, n; double Sk,Ak; printf("自然対数の底 e を計算します。\n"); printf("何項まで計算しますか ? "); scanf("%d", &n); /* k = 0 のとき */ Ak = 1.0; Sk = Ak; for (k = 1; k <= n; k++) { Ak = Ak / k; Sk = Sk + Ak; printf("k=%3d, Ak=%e, Sk=%20.15e\n", k, Ak, Sk); } return 0; } |
実行結果 |
oyabun% ./example6 自然対数の底 e を計算します。 何項まで計算しますか ? 20 k= 1, Ak=1.000000e+00, Sk=2.000000000000000e+00 k= 2, Ak=5.000000e-01, Sk=2.500000000000000e+00 k= 3, Ak=1.666667e-01, Sk=2.666666666666667e+00 k= 4, Ak=4.166667e-02, Sk=2.708333333333333e+00 k= 5, Ak=8.333333e-03, Sk=2.716666666666666e+00 k= 6, Ak=1.388889e-03, Sk=2.718055555555555e+00 k= 7, Ak=1.984127e-04, Sk=2.718253968253968e+00 k= 8, Ak=2.480159e-05, Sk=2.718278769841270e+00 k= 9, Ak=2.755732e-06, Sk=2.718281525573192e+00 k= 10, Ak=2.755732e-07, Sk=2.718281801146385e+00 k= 11, Ak=2.505211e-08, Sk=2.718281826198493e+00 k= 12, Ak=2.087676e-09, Sk=2.718281828286169e+00 k= 13, Ak=1.605904e-10, Sk=2.718281828446759e+00 k= 14, Ak=1.147075e-11, Sk=2.718281828458230e+00 k= 15, Ak=7.647164e-13, Sk=2.718281828458995e+00 k= 16, Ak=4.779477e-14, Sk=2.718281828459043e+00 k= 17, Ak=2.811457e-15, Sk=2.718281828459046e+00 k= 18, Ak=1.561921e-16, Sk=2.718281828459046e+00 k= 19, Ak=8.220635e-18, Sk=2.718281828459046e+00 k= 20, Ak=4.110318e-19, Sk=2.718281828459046e+00 oyabun% |