您的位置:首页 > 编程语言 > C语言/C++

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

2015-12-27 16:55 232 查看

题目描述

用递归方法求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;

}

#include <stdio.h>


double
polya(
int

n,
int
x);


double
polya(
int

n,
int
x)


{


if
(n==0)

return
1;


if
(n==1)

return
x;


if
(n>1)


{


return

((2*n-1)*x*polya(n-1,x)-(n-1)*polya(n-2,x))/n;


}


}


int
main()


{


int

x,n;


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


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


return

0;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: