>>433
これで
有効桁数15桁じゃなくて常に小数点以下15桁が必要なら多倍長演算しないとダメ
#include <stdio.h>

double myexp2(int x, int n, double x_n_n)
{
if(x_n_n<1.0e-16) return 0.0;

return myexp2(x, n+1, x_n_n*x/n)+x_n_n;
}

double myexp(int x)
{
return myexp2(x, 1, 1.0);
}

int main(void)
{
printf("%.20f\n", myexp(5));

return 0;
}