double fn(double x,int n)
{
double ans;
if(n==0||n==1)
ans=x;
else
ans=x-x*fn(x,n-1);
return ans;
}
这个题很简单,递归主要需要找到递归边界,而这个题的递归边界便是当n0或者n1的时候。
因为fn的式子已经给出,那么我们可以手动推导出ans=x-x*fn(x,n-1),同时这个式子避免了符号变化的麻烦。递归的难点便在于递归的边界以及递推式的推导,这两步解决了,答案也就自热而然出来了。