C语言入门题库——递归求n阶勒让德多项式

快来打我* 2023-07-15 13:24 91阅读 0赞

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

  1. #include<stdio.h>
  2. float p(float x, int n)
  3. {
  4. float pn;
  5. if(n == 0)
  6. pn = 1;
  7. else
  8. if(n == 1)
  9. pn = x;
  10. else
  11. pn = ((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-2))/n;
  12. return pn;
  13. }
  14. int main()
  15. {
  16. float x;
  17. int n;
  18. scanf("%f%d", &x, &n);
  19. printf("%.4f", p(x,n));
  20. return 0;
  21. }

发表评论

表情:
评论列表 (有 0 条评论,91人围观)

还没有评论,来说两句吧...

相关阅读