C语言习题 求n阶勒让德多项式

来源:互联网 发布:微信攻击软件 编辑:程序博客网 时间:2024/05/23 23:38

题目描述

用递归方法求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位小数。

输入

n和x的值。

输出

pn(x)的值。

样例输入

2 2

样例输出

5.50

提示

 主函数已给定如下,提交时不需要包含下述主函数



int main()

{

 int x,n;

 scanf("%d%d",&n,&x);

 printf("%.2f\n",polya(n,x));

 return 0;

}



  1. #include <stdio.h>
  2. double polya(intn,int x);
  3. double polya(intn,int x)
  4. {
  5.     if(n==0)return 1;
  6.     if(n==1)return x;
  7.     if(n>1)
  8.     {
  9.         return((2*n-1)*x*polya(n-1,x)-(n-1)*polya(n-2,x))/n;
  10.     }
  11. }
  12. int main()
  13. {
  14.     intx,n;
  15.     scanf("%d%d",&n,&x);
  16.     printf("%.2f\n",polya(n,x));
  17.     return0;
  18. }
0 0
原创粉丝点击