用递归法求n阶勒让德多项式的值,递归公式如下:

Pn(x)=
{
n=0 值为1;
n=1 值为x;
n>1 值为((2n-1)*x-Pn-1(x)-Pn-2*(x))/n
}
想问一下 我下面这么写错误在哪里为什么我输入n和x的值0,5的时候运算结果是5啊,应该是1才对啊;

#include<iostream>
using namespace std;
float p(int n,int x);
int main()
{
int n,x;
cout<<"please enter 2 number:"<<endl;
cin>>n>>x;
cout<<"p("<<n<<","<<x<<")="<<p(n,x)<<endl;
return 0;

}

float p(int n,int x)
{
float num;
if (n=0) num=1;
else if (n=1) num=x;
else num=((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n;
return num;
}
卧槽 我真T M S B
if (n==0) num=1;
else if (n==1) num=x;
else num=((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n;

float p(int n, int x)
{
float num;
if (n == 0) num = 1;
//    ^^
else if (n == 1) num = x;
//         ^^
else num = ((2 * n - 1)*x - p(n - 1, x) - (n - 1)*p(n - 2, x)) / n;
return num;
}

要用==来判断相等,不然就是赋值了

温馨提示:内容为网友见解,仅供参考
无其他回答

n次勒让德多项式的递推公式
用递归方法求n阶勒让德多项式的值,递归公式如下:当n=0的时候,p(0,x)=1 当n=1的时候,p(1,x)=x 当n1的时候,p(n,x)=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))

用递归方法求n阶勒让德多项式的值递归公式
当n=0时,Pn(x)=1;当n=1时,Pn(x)=x;当n>1时,如下递归公式:百度百科-勒让德多项式

C语言用递归方法求n阶勒让德多项式
当n=1时,勒让德多项式L₁(x)=x 对于n>1的情况,利用递归关系式:Lₙ(x) = (2n-1)xLₙ₋₁(x) - (n-1)Lₙ₋₂(x) \/ n 通过该递归公式,我们可以直接计算出任意阶勒让德多项式。值得注意的是,在递归公式中,我们需要准确调用上一...

递归法求n阶勒让德多项式,Pn={1,n=0 x,n=1 ((2n-1)*x-Pn-1(x)-(n...
1 (n=0)pn(x)=x (n=1)((2n-1)xpn-1(x)-(n-1)pn-2(x))\/n (n>1)例如:include <stdio.h> float p (int n,int x){ int f;if(n<0){ f = -1;printf("error, n should be larger than 0");} else if(n==0){ f = 1;} else if (n==1){ f = x;} else...

C语言用递归法求n阶勒让德多项式的值
递归法求解n阶勒让德多项式的值,关键在于利用上述递推关系,从已知的低阶多项式值出发,逐步计算出高阶多项式的值。具体实现步骤如下:1. 初始化基础情况,即n = 0和n = 1时的多项式值。2. 对于n > 1的情况,根据递推关系计算P_n(x)的值。这里的计算过程中,我们需要利用x的值和已计算出的...

递归法求n阶勒让德多项式,Pn={1,n=0 x,n=1 ((2n-1)*x-Pn-1(x)-(n...
递归公式:1 (n=0)pn(x)=x (n=1)((2n-1)xpn-1(x)-(n-1)pn-2(x))\/n (n>1)在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。 递归一词还较常用于描述以自相似方法重复事物的过程。 例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。 也...

VB编程:用递归方法求n阶勒让德多项式的值
代码如下:Option Explicit Private Sub Command1_Click()MsgBox P(2, 2)End Sub Function P(ByVal n As Integer, ByVal x As Double) As Double If n = 0 Then P = 1 Exit Function End If If n = 1 Then P = x Exit Function End If P = ((2 * n - 1) * x * P(n - ...

用递归方法求n阶勒让德多项式
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;} 运行结果:...

C语言用递归方法求n阶勒让德多项式的值
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;} 运行结果:...

C语言 用递归法求n阶勒让德多项式的值
首先把你的float p改成int p再说,int,float,double,char的占用字节不同,而且p函数中返回的是Int数据,可是他是一个float数据,打印的时候又是d%,都是些基础问题啊。另外一些问题是那个公式,不能那么写的。你把原题发出来,我给你写吧。。。记得用到一些数学公式的时候记得加#include <math.h> ...

相似回答