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

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;
}

你可能感兴趣的:(C语言题库)