利用递归方法求n阶勒让德多项式的值 若n小于0输出 error c语言大学内容
时间: 2023-07-16 07:12:39 浏览: 91
C语言中利用递归的方式得到n!
5星 · 资源好评率100%
以下是C语言代码实现:
```c
#include <stdio.h>
double legendre(int n, double x) {
if (n < 0) { // 判断n是否小于0
printf("error\n"); // 输出error
return 0;
} else if (n == 0) { // n等于0时,返回1
return 1;
} else if (n == 1) { // n等于1时,返回x
return x;
} else { // 递归调用legendre函数
return ((2.0 * n - 1.0) * x * legendre(n - 1, x) - (n - 1.0) * legendre(n - 2, x)) / n;
}
}
int main() {
int n;
double x;
printf("请输入n和x的值:");
scanf("%d %lf", &n, &x);
printf("legendre(%d, %lf) = %lf\n", n, x, legendre(n, x));
return 0;
}
```
在上面的代码中,我们定义了一个`legendre`函数来计算n阶勒让德多项式的值。首先判断输入的n是否小于0,如果小于0则输出`error`并返回0;如果n等于0,则返回1;如果n等于1,则返回x;否则,递归调用`legendre`函数进行计算。最后在`main`函数中读入n和x的值,并输出计算结果。
阅读全文