递归函数double p(int n,int x)计算下列多项式。
多项式的递归定义如下:输入每行输入2个整数n,x。当n<0时结束输入。输出对应输入,每行输出一个计算结果。
样例输入0,31,32,30-1,30
样例输出1.0000003.0000001349.500000
答案
#include<stdio.h>
int main()
{
double Fact(int a,int b);
int n,x;double h;
while(scanf("%d,%d",&n,&x)!=EOF){
if(n<0)break;h=Fact(n,x);
printf("%lf\n",h);
}
return 0;
}
double Fact(int a,int b){
double c;
if(a<=0)
c=1;
if(a==1)
c=b;
if(a>=2)
c=((2.0 * a - 1) * b*Fact(a- 1.0, b) - (a - 1.0) * Fact(a - 2.0, b)) / a;
return c;
}