洛谷B2146题Hermite 多项式

问题遇到的现象和发生背景

https://www.luogu.com.cn/problem/B2146
洛谷B2146题,不知道哪里错了,运行结果是没有问题。

img

用代码块功能插入代码,请勿粘贴截图
#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) );  
}