用递归方法求n阶勒让德多项式的值

来源:互联网 发布:mac好用的邮箱软件 编辑:程序博客网 时间:2024/05/04 00:20

作者:夏晓林

时间:2016.11

题目描述:

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

问题及代码:

#include <stdio.h>#include <stdlib.h>double polya(n,x);int main(){    int x,n;    scanf("%d%d",&n,&x);    printf("%.2f\n",polya(n,x));    return 0;}double polya(int n,int x){    double y;    if(n==0)        y=1;    if(n==1)        y=x;    if(n>1)        y=((2*n-1)*x*polya(n-1,x)-(n-1)*polya(n-2,x))/n;    return y;}

运行结果:


学习心得:

一开始直接将公式粘贴过来,提示错误error: invalid suffix "n" on integer constant,问问度娘才知道,意思是整形常量后加上了无效后缀n,才知道是2n之间没写*,改为2*n之后就对了。

 

1 0
原创粉丝点击