今天写郑莉教材课后题:用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入、输出;(c++程序设计第六版97页)
代码如下:
#include
float p(int n, int x);
void main()
{
int n,x;
cout << "请输入正整数n:";
cin >> n;
cout << "请输入正整数x:";
cin >> x;
cout << "n = " << n << endl;
cout << "x = " << x << endl;
cout << "P" << n << "(" << x << ") = " << p(n,x) << endl;
}
float p(int n, int x)
{
if (n == 0)
return 1;
else if (n == 1)
return x;
else
return ((2*n-1)*x*p(n-1,x) - (n-1)*p(n-2,x)) /n ;
}
结果:
请输入正整数n:3
请输入正整数x:4
n = 3
x = 4
P3(4) = 154
而将函数p改为int p,其他不变,输入n=3,x=4,结果则为150。。
想知道这之间相差的4是什么造成的。。