https://www.luogu.com.cn/problem/B2146
洛谷B2146题,不知道哪里错了,运行结果是没有问题。
#include
int f(int n,int x)
{
if(n==0)
return 1;
else if(n==1)
return 2*x;
else
return 2*x*f(n-1,x)-2*(n-1,x)*f(n-2,x);
}
int main ()
{
int x,n;
scanf("%d%d",&n,&x);
printf("%d",f(n,x));
return 0;
}
#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) );
}