2017-05-07 7 views
-2

exp関数を作成しようとしていますが、アルゴリズムは正しいと思いますが、コードを変更するのに多くの時間を費やしましたが、まだ動作していません。 enter image description here再帰関数を持つEXP関数コード

#include<stdio.h> 
#include<unistd.h> 
#include<stdlib.h> 
#include<math.h> 
#include<conio.h> 

double faktoriyel(double x,double N) ; 

int main(){ 
double N,x,a; 
double s=0;  
scanf("%lf", &x); 
scanf("%lf",&N); 
a=N; 
do 
{ 
s+=faktoriyel(N,x); 
--a; 
}while (a>0); 
printf("\n%lf\n",s) ; 
} 
double faktoriyel(double N,double x) 
{ 
if (N < 0) 
return -1; 
else if (N <2) 
return pow(x,N)/1; 
else 
return (pow(x,N)/N * faktoriyel(N-1,x)); 
} 
+3

x^2/1に変更してください! ---> x^2/2! – BLUEPIXY

+0

これはC++でタグ付けされているので、 'std :: exp'だけ使うことができます。今私はそれについて考えて、Cは同じ機能を持っている必要があります。 –

+2

最後の返品、X^N/Nの分解! X^N/N *を与える –

答えて

0

何をやっている合計x^N/k!x^k/k!を合計します。単に関数呼び出しをfactoriyel(x,a)

+0

'factoriyel'の宣言/実装が混乱していませんか? –

+0

彼は 'pow(x、N *(N + 1)/ 2)'を実行しているようです(再帰を展開した場合) –

+0

あなたはx^N/kを合計しようとしていることを理解しました! 、私はx^N/kを計算して計算しました!私は0とNの和を見つけるdo whileループにmainを挿入しました。 – marten