C语言入门题库——递归求n阶勒让德多项式
Description:用递归方法求n阶勒让德多项式的值,递归公式为:
Pn(x) = 1 (n=0)
Pn(x) = x (n=1)
Pn(x) = ((2 * n - 1) * x - P(x, n-1) - (n-1) * P(x, n-2)) / n (n>=1)
Input:输入仅一行,输入x和n,用空格隔开。
x和函数值均设为float,n设为整形。
Output:输出一行,输出计算结果(小数点后保留4位)
Sample Input:1.5 3
Sample Output:1.1667
#include<stdio.h>
float p(float x, int n)
{
float pn;
if(n == 0)
pn = 1;
else
if(n == 1)
pn = x;
else
pn = ((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-2))/n;
return pn;
}
int main()
{
float x;
int n;
scanf("%f%d", &x, &n);
printf("%.4f", p(x,n));
return 0;
}
还没有评论,来说两句吧...