C++ 用递归方法求勒让德多项式 程序的问题
答案:1 悬赏:60 手机版
解决时间 2021-04-05 13:06
- 提问者网友:相思似海深
- 2021-04-04 16:59
C++ 用递归方法求勒让德多项式 程序的问题
最佳答案
- 五星知识达人网友:鱼忧
- 2021-04-04 17:55
语法不熟悉造成的问题,最后造成stack overflow....
注意是:
if(xxx)
else if(xxx)
最后才
else
和上面的不一样 在执行完if(n==1) return x;以后,因为return这个关键字,所以已经返回了,后面的所有语句都不再执行...而if(n==1) p=x;却不一样,这句执行完后还会接下去执行else后面的语句...所以你那样写,程序并不会按照你想的那样"跑"...
把代码改成这样,应该就OK,我测试时OK的...
double f(double x, int n)
{
double p;
if(n == 0)
p = 1;
else if(n == 1)
p = x;
else
p = ((2*n - 1)*x*f(x, n - 1) - (n - 1)*f(x, n - 2))/n;
return p;
}
注意是:
if(xxx)
else if(xxx)
最后才
else
和上面的不一样 在执行完if(n==1) return x;以后,因为return这个关键字,所以已经返回了,后面的所有语句都不再执行...而if(n==1) p=x;却不一样,这句执行完后还会接下去执行else后面的语句...所以你那样写,程序并不会按照你想的那样"跑"...
把代码改成这样,应该就OK,我测试时OK的...
double f(double x, int n)
{
double p;
if(n == 0)
p = 1;
else if(n == 1)
p = x;
else
p = ((2*n - 1)*x*f(x, n - 1) - (n - 1)*f(x, n - 2))/n;
return p;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯