الحساب العودي للدالة الأسية في C
e (x) = 1+ x / 1! + س ^ 2/2! + س ^ 3/3! + ... + س ^ ن / ن! مع < / span >< span style = "عائلة الخط: 'ساعي جديد' ، ساعي ، ميني فان ؛" >x^n/n! < نمط الامتداد = "اللون: أحمر ؛" >< < / سبان> < / span >< span style = "لون الخلفية: أبيض ؛ اللون: #252525; عائلة الخط: بلا رقيق ؛ حجم الخط: 14px; نمط الخط: مائل; ارتفاع الخط: 14.9333333969116px;" >Ɛ< / span >< span style = "اللون: #38761d ؛ عائلة الخط: ساعي جديد ، ساعي ، ميني فان ؛" >#include< stdio.h> < / span >
< span style = "اللون: #38761d ؛ عائلة الخط: ساعي جديد ، ساعي ، ميني فان ؛" >#include< stdlib.h> < / span >
< / span >fact_recursive طويل غير موقع (اسم قصير غير موقع)< / span >
< span style = "عائلة الخط: Courier New ، Courier ، monospace ؛" >{
نبسب؛ إذا كان (الرقم == < نمط الامتداد = "اللون: أرجواني ؛" >0< / span >) < / span >
نبسب؛ نبسب؛ نبسب؛ إرجاع < نمط الامتداد = "اللون: أرجواني ؛" >1< / سبان> ؛ < / span >
نبسب؛ else
نبسب؛ نبسب؛ نبسب؛ رقم الإرجاع * fact_recursive (الرقم - < نمط الامتداد = "اللون: أرجواني ؛" >1< / الامتداد >) ؛ < / span >
}
< / span > int puiss(int x طويل، int n)
{
إذا(n == <نمط الامتداد = "اللون: أرجواني؛" >0< / span >) < / span >
نبسب؛ العودة 1 ؛ < / span >
إذا(n == <نمط الامتداد = "اللون: أرجواني؛" >1< / span >) < / span >
نبسب؛ إرجاع x;
int x2 = القوى (x ، n / < نمط الامتداد = "اللون: أرجواني ؛" >2سبان>)؛ < / span >
إذا(n٪2 == <نمط الامتداد = "اللون: أرجواني؛" >0< / span >) < / span >
نبسب؛ عودة x2 * x2 ؛ < / span >
إرجاع x2 * x2 * x ؛ < / span >
}
< / span >calcul_formule مزدوج (int x ، int n ، int epsilon) < / span >
{
نبسب؛ نبسب؛ كسر مزدوج = (مزدوج) puiss (x ، n) / (مزدوج) fact_recursive (n) ؛ < / span >
نبسب؛ نبسب؛ إذا(n==< نمط الامتداد = "اللون: أرجواني؛" >0< / span >) < / span >
نبسب؛ نبسب؛ {
نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ إرجاع < نمط الامتداد = "اللون: أرجواني ؛" >1< / سبان> ؛ < / span >
نبسب؛ } < / span >
نبسب؛ نبسب؛ else{
نبسب؛ نبسب؛ نبسب؛ نبسب؛ < نمط الامتداد = "اللون: أزرق ؛" >//التحقق من الحالة إذا كانت القوى (x، n) / n! > epsilon< / span >< / span >
نبسب؛ نبسب؛ نبسب؛ نبسب؛ if(fraction < epsilon)
نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ إرجاع الكسر + calcul_formule (x ، n-1< / سبان > ، إبسيلون) ؛ < / span >
نبسب؛ نبسب؛ نبسب؛ نبسب؛ else
نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ نبسب؛ إرجاع calcul_formule (x ، n-< span style = "اللون: أرجواني ؛" >1< / سبان > ، إبسيلون) ؛ < / span >
نبسب؛ } < / span >
}
< / span > int main(int argc, char *argv[])
{
نبسب؛ نبسب؛ إنت س ، ن ، إبسيلون ؛ < / span >
نبسب؛ نبسب؛ printf (< نمط الامتداد = "اللون: أحمر ؛" >"أدخل قيمة x: "< / span>); < / span >
نبسب؛ نبسب؛ scanf (< نمط الامتداد = "اللون: أحمر ؛" >"٪d",& x); < / span >
نبسب؛ نبسب؛ printf (< نمط الامتداد = "اللون: أحمر ؛" >"أدخل قيمة n: "< / span>); < / span >
نبسب؛ نبسب؛ scanf (< نمط الامتداد = "اللون: أحمر ؛" >"٪d",& n); < / span >
نبسب؛ نبسب؛ printf (< نمط الامتداد = "اللون: أحمر ؛" > أدخل قيمة Epsilon: "< / span>) ؛ < / span >
نبسب؛ نبسب؛ scanf (< نمط الامتداد = "اللون: أحمر ؛" >"٪d",& إبسيلون) ؛ < / span >
نبسب؛ نبسب؛ < نمط الامتداد = "اللون: أزرق ؛" > //حساب الصيغة
نبسب؛ نبسب؛ printf (< نمط الامتداد = "اللون: أحمر ؛" >"exp(٪d) = ٪f\n",x,calcul_formule(x,n,epsilon)); < / span >
نبسب؛ نبسب؛ النظام (< نمط الامتداد = "اللون: أحمر ؛" >وقفة" < / سبان >) ؛ < / span >
}
< / >< / سبان>