带递推式即可,注意数据类型的使用和转换!
#include<bits/stdc++.h>//万能头
int main()
{
int n;
double x;
scanf("%d%lf",&n,&x);
double ans=0;
double num[n];
num[0]=1;
num[1]=x;//初始化
ans+=num[1];
for(int i=2;i<=n;i++){
double i0=i*1.0;//类型转换
num[i]=((2*i0-1)*num[i-1]*x-(i0-1)*num[i-2])/i0;//带递推式
ans+=num[i];//累加
}
printf("%.4lf",ans);//精度
return 0;
}
按部就班即可