PTA 计算函数P(n,x)
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个整数n (n>=0)和一个双精度浮点数x,输出函数p(n,x)的值(保留2位小数)。
1 (n=0)
x (n=1)
((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n (n>1)
例:括号内是说明
输入样例:
3 (repeat=3)
0 0.9 (n=0,x=0.9)
1 -9.8 (n=1,x=-9.8)
10 1.7 (n=10,x=1.7)
结尾无空行
输出样例:
p(0,0.90)=1.00
p(1,-9.80)=-9.80
p(10,1.70)=3.05
结尾无空行
我的代码
#include <stdio.h>
double p(int n,double x)
{
if(n==0)
return 1;
else if(n==1)
return x;
else
return ((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n ;
}
int main()
{
double b[10],ret=0.0,x=0.0;
int repeat=0,i=0,j=0,n=0,N=0,a[10]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%lf",&a[i],&b[i]);
}
for(i=0;i<n;i++)
{
printf("p(%d,%.2lf)=%.2lf\n",a[i],b[i],p(a[i],b[i]));
}
return 0;
}