递归的算法不对啊f(n+1) = 2f(n)+f(n-1)f(n-2);所以 最终的return f(nn-1) * 2 + f(nn-2)*f(nn-3);这样才对你的公式从哪里来的?另外 由于有限定输入<13所以 你这里不应该用浮点型 而是所有数据类型都用int或者long
这个递归函数只要这样写:double f(int n){ if(n>=0&&n<3)return n; else return 2*f(n-1)+f(n-2)*f(n-3);}