题目描述
用递归的方法求 Hermite
多项式的值
hn(x)=⎩⎪⎪⎨⎪⎪⎧12x2xhn−1(x)−2(n−1)hn−2(x)n=0n=1n>1
对给定的 x
和正整数 n
,求多项式的值,并保留两位小数。
输入格式
给定的 n
和正整数 x
。
输出格式
多项式的值。
输入样例
1 2
输出样例
4.00
根据题意,我们需要计算 Hermite 多项式,题目中给出相应的计算公式,我们需要对给定的数字,进行相应公式的计算,当满足不同的条件下,我们采用不同的计算公式。 #include<iostream> #include<cstdio> using namespace std; double calculate(int n,int x); //主函数的定义 int main() { int n,x; double result; cin>>n>>x; result=calculate(n,x); printf("%.2lf\n",result); return 0; } //Hermite多项式的定义 double calculate(int n,int x) { if(n==0)//判断是否到达递归边界n=0 return 1; else if(n==1)//判断是否到达递归边界n=1 return 2*x; else//否则继续递归 return ( 2*x*calculate(n-1,x)-2*(n-1)*calculate(n-2,x) ); }