数学常量e算法

e = 1 + 1 / 1! + 1 / 2! + 1 / 3! +...+ 1 / n!

 1 #include <stdio.h>
 2 
 3 int main() {
 4     float n, s;
 5     int m, i;
 6     
 7     printf("Input m:");
 8     scanf("%d", &m);
 9     
10     for (i = 1, n = 1.0f; i < m; i++){
11         n *= i;
12         s += 1.0f / n;
13     }
14     printf("%f\n", s + 1);
15     
16     return 0;
17 }

这里的 m 输入的是整数。

 

修改原程序,使得程序持续执加法运算,直到当前项小于 k 为止,其中 k 是用户输入的较小的浮点数:

#include <stdio.h>

int main() {
    float n, s, k;
    int i;
    
    printf("Input k:");
    scanf("%f", &k);
    
    for (i = 1, n = 1.0f; ; i++){
        n *= i;
        s += 1.0f / n;
        if (1 / n < k)
            break;
    }
    printf("%f\n", s + 1);
    
    return 0;
}

 

posted @ 2017-09-15 22:48  精彩探索者  阅读(726)  评论(0编辑  收藏  举报