//问题描述:
//用递归方法求n阶勒让德多项式的值,递归公式为
//n = 0 pn(x) = 1
//n = 1 pn(x) = x
//n > 1 pn(x) = ((2n - 1)x pn - 1(x)-(n - 1)* pn - 2(x)) / n
//结果保留2位小数
#include<stdio.h>
float rd(int n,int x) {
float r;
if (n == 0)
return 1;
else if (n == 1)
return x;
else
r = ((2 * n - 1) * x * rd(n - 1, x) - (n - 1)*rd(n - 2, x)) / n;
return r;
}
int main() {
int n, x;
float i;
printf("请输入阶数:");
scanf_s("%d", &n);
printf("请输入x:");
scanf_s("%d", &x);
i = rd(n, x);
printf("%.2f", i);
system("pause");
return 0;
}
运行结果: