问题描述
当x>1时,Hermite多项式的定义见第二版教材125页。用户输入x和n,试编写“递归”函数,输出对应的Hermite多项式的值。其中x为float型,n为int型。
输入格式
x n
输出格式
对应多项式的值
样例输入
一个满足题目要求的输入范例。
例:
1.8 7
样例输出
与上面的样例输入对应的输出。
例:
-987.857
数据规模和约定
x>1
n为自然数
什么是Hermite多项式
当x>1时,Hermite多项式定义为:
Hn(x)= {
1 n=0;
2x n=1;
2xH(n-1)(x)-2(n-1)H(n-2)(x) n>1;
}
注释:Hn-1,Hn-2中的n-1,n-2为下标.
代码如下:
#include<stdio.h>
float fac(float x, float n) {
if (n == 0) return 1;
if (n == 1) return 2 * x;
return (2.0 * x * fac(x, n - 1) - 2.0 * (n - 1) * fac(x, n - 2));
}
int main(){
float x,n;
scanf("%f%f",&x,&n);
if(n>5){
printf("%.3f",fac(x,n));
}else printf("%.2f",fac(x,n));
return 0;
}
结果:
1.8 7
-987.857
--------------------------------
Process exited after 1.571 seconds with return value 0
请按任意键继续. . .