美高梅4858-美高梅4858mgm-[官方网站]

2019年6月

[C语言]用递归法求n阶勒让德多项式

题目

用递归法求n阶勒让德多项式,递归公式为:

        { 1                                     (n=0)
Pn(x) = { x                                     (n=1)
        { ((2n-1)*x-Pn-1(x)-(n-1)*On-2(x))/n    (n>=1)

用递归法求n阶勒让德多项式,递归公式为

解题思路

  1. 要求输入 n 和 x 的值
  2. 输出 Pn(x) 的值

C语言代码实现

#include "stdio.h"

int main(){
    double legendre(double n, double x);//声名自定义的函数 legendre
    double n,x;
    
    printf("请输入n、x(空格隔开):");
    scanf("%lf %lf", &n, &x);
    
    printf("结果:%lf", legendre(n, x));

    return 0;
}

double legendre(double n, double x){
    double s;

    if(n == 0){
        s = 1;
    }else if(n == 1){
        s = x;
    }else if(n > 1){
        //使用递归 legendre(n-1.0, x)、legendre(n-2.0, x)
        s = ((2.0*n-1.0)*x-legendre(n-1.0, x)-(n-1.0)*legendre(n-2.0, x))/n;
    }

    return s;
}

测试

输入 n 和 x 的值为:22

预想返回结果:1.5

请输入n、x(空格隔开):2 2
结果:1.500000
XML 地图 | Sitemap 地图