回 帖 发 新 帖 刷新版面

主题:求助C++  程序已经可以运行,请问如何定义符号变量,谢谢

用递归方法求n阶勒让德多项式的值,递归公式为(见图)

#include <iostream>
using namespace std;
int fac(int);         //函数声明
# define x 1
int main()
{
int n,i;
float f;
cout<<"Please enter n:";
cin>>n;
if(n==0)
  cout<<"p(x)="<<1<<endl;
else if(n==1)
   cout<<"p(x)="<<'x'<<endl; 
else
{for(i=2;i<=n;i++)
 f=fac(i);
}  
cout<<"p(x)="<<f<<endl;
return 0;
}

int fac(int n)
{
static float m=x;
 static float k=1;
 float t=0;
t=m;
m=(2*n-1)*x-m-(n-1)*k;
m=m/n;
k=t;
return m;
}

回复列表 (共5个回复)

沙发

啥叫“如何定义符号变量”?

板凳

“符号变量”似乎是matlab的概念,C语言、C++语言似乎没这个概念了。
照着楼主的图,写成这样:

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

int main() {
    int n;
    double x;
    cin >> n >> x;
    cout << p(n, x);
    return 0;
}

没有详细测试,见谅。

3 楼

我的意思是指最程序的最终输出中含有x,而不对它赋值。

4 楼

谢谢你们,程序我已调出,只是不知道如何在不赋值给x的情况下,得到程序的输出。

5 楼

[quote]谢谢你们,程序我已调出,只是不知道如何在不赋值给x的情况下,得到程序的输出。[/quote]
沒有這功能,這個是C,不是Matlab:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册