红枣豚骨靓汤 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 CATIA有些零件打开直接单机确定终止
  • ¥15 请问有会的吗,用MATLAB做
  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址