くだすれC言語(初心者用)

このエントリーをはてなブックマークに追加
210デフォルトの名無しさん
愚直に計算するように直してみた。
・long doubleで精度を確保
・long longで階乗もOK
・逆順で計算することで誤差を減らす
でも微妙にmath.hのM_E(2.7182818284590452354)と違う……
--
#include<stdio.h>

int main()
{
long double e = 0;
for (int counter = 21; counter >= 1; --counter) {
unsigned long long n = 1;
for (int count = 1; count < counter; ++count) {
n *= count;
}
e += 1.0 / n;
printf("%.30Lg, %llu\n", e, n);
}
printf("自然対数の底eの近似値は %.30Lg", e);
return 0;
}