红枣豚骨靓汤 2021-11-06 14:06 采纳率: 100%
浏览 35
已结题

C语言,递归,请问一下这个怎么算的不对啊

  • #include <stdio.h>

int main(int argc, char** argv){
int n,i;
float a[100],x;
scanf("%d %f",&n,&x);
a[1]=1.0;
a[2]=x;
for(i=3;i<=n+1;i++)
{
a[i]=((2.0*n-1.0)*x-a[i-1]-(n-1.0)*a[i-2])/n;
}
printf("%.2lf",a[n+1]);
return 0;
}
题目如下:
用递归方法求n阶勒让德多项式的值,递归公式为

​ P n(x)=
1,n=0
x,n=1
((2n−1)×x−P n−1 (x)−(n−1)×P n−2 (x))/n,n>1

输入
一个自然数和一个浮点数,以空格分割,分别代表n和x

输出
Pn (x)的值,保留两位小数。

样例
输入
6 1.2
输出
0.90

这是我调试的错误
输入
6 1.2
输出
1.12

  • 写回答

2条回答 默认 最新

  • 关注

    你也没用递归啊,递归方法如下:

    #include <stdio.h>
    float fun(int n,float x)
    {
        if (n==0)
        {
            return 1;
        }else if (n==1)
        {
            return x;
        }else
            return ((2*n-1)*x - fun(n-1,x) - (n-1)*fun(n-2,x))/n; 
    }
    int main()
    {
        int n;
        float x;
        scanf("%d %f",&n,&x);
        printf("%.2f",fun(n,x));
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月6日
  • 已采纳回答 11月6日
  • 创建了问题 11月6日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题