请教编写一C语言程序

来源:百度知道 编辑:UC知道 时间:2024/05/18 07:40:59
用递推法求n阶勒让得多项式的值
其中已知递归公式为:
1 n=0
Pn(x)= x n=1
((2n-1)*x-Pn-1(x)-(n-1)*Pn-2(x))/n n>=1
是用递推法不是递归法

#include <stdio.h>

double Legendre(int n, int x)
{
if(n == 0)
return 1;
if(n == 1)
return x;

double dbPn_1 = x;
double dbPn_2 = 1;
for(int i = 2; i <= x; ++i)
{
double dbTemp = dbPn_1;
dbPn_1 = ((2*i-1)*x - dbPn_1 - (i-1)*dbPn_2)/i;
dbPn_2 = dbTemp;
}

return dbPn_1;
}

int main()
{
printf("%lf\n", Legendre(4, 4));
}

好多年没有看到C了
进来捧个场
呵呵

double p(int n,double x)
{if(n<0)exit();
if(n==0)return 1;
if(n==1)return x;
return ((2n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n;
}