/*
求解n阶多项式的值,多项式公式如下:
Pn(x) = 1 n=0;
= x n = 1;
= (2n - 1)xPn-1(x) - (n - 1)Pn-2(x) n>=2
*/
#include <stdio.h>
#include <stdlib.h>
float Pn(int n,float x)
{
if(n == 0)
return 1;
else if(n == 1)
return x;
else
return (2 * (n-1) + 1) * x * Pn(n-1,x) - (n - 1) * Pn((n -1 ) - 1,x);
//return (2 * n - 1) * x * Pn(n-1,x) - (n - 1) * Pn(n - 2,x);
}
int main()
{
int n;
float x;
printf("Enter n:");
scanf("%d", &n);
printf("Enter x:");
scanf("%f", &x);
printf("%f", Pn(n,x));
return 0;
}