这道C语言怎么做啊

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:35:56
1.用递归方法求n阶勒让德多项式的值,递归公式为
当n=0时,pn(x)=1,当n=1时,pn(x)=x,当n>=1时,pn(x)=((2n-1)*x-p(n-1)(x)-(n-1)*p(n-2)(x))/n
2.定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

2\

#include <stdio.h>

#define swap(x,y) (x)^=(y)^=(x)^=y

int main()
{
int a = 10;
int b = 100;
scanf("%d%d",&a,&b);
printf("a: %d ; b: %d\n",a,b);
swap(a,b);
printf("a: %d ; b: %d\n",a,b);
return 0;
}

1\
#include <stdio.h>

double p(int n,double x)
{
if (n == 0)
return 1;
else if (n == 1)
return x;
else
return (double)(((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))*1.0/n);
}
int main()
{
double x,ans;
int n;
scanf("%d%lf",&n,&x);
ans = p(n,x);
printf("%lf\n",ans);
return 0;
}

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

/* 无妨设为double类型,其他类似 */