マクローリン展開を用いてeの値であるe=2.718...を求めたいのですが以下のプログラムではNの値をどれだけ変化させてもe=2.718と出てきません。
どのように修正する必要があるのでしょうか?
ご回答宜しくお願いします。
#include <stdio.h> #include <math.h> #define N 5 double k(int x) { int i,k=1,l=1; for(i=0;i<x;i++){ k=k*l; l=l-1; } return k; } double myexp(double x,int n) { int i=1; double y; double e; e=1; y=pow(x,i); for(i=1;i<N;i++){ e=e+(y/(k(i))); } return e; } int main(void) { double e; e=myexp(1,N); printf("e=%.10f\n",e); return 0; }
回答4件
あなたの回答
tips
プレビュー