一道关于递归函数的C语言,为什么输不出来结果呢

2025-05-02 02:17:07
推荐回答(2个)
回答(1):

递归的算法不对啊
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

回答(2):

这个递归函数只要这样写:
double f(int n)
{
if(n>=0&&n<3)return n;
else return 2*f(n-1)+f(n-2)*f(n-3);
}