请问为什么要用long?还有就是真的就return fibo(n - 1) + fibo(n - 2);这么简单就可以了吗?
long fibo(int n)
{
if (n <= 2)
return 1;
else
return fibo(n - 1) + fibo(n - 2);
}
long fibo(int n)
{
if (n <= 2)
return 1;
else
return fibo(n - 1) + fibo(n - 2);
}
long 比 int 多4位。
因为该函数在n<=2时会停止。
所以他做的就是你上面写的数列表达式。
但是你的函数不严谨。
没有考虑到 n为负数的情况。
n为负数应该返回0.
long fibo(int n)
{
if(n<0)
return 0;
else if (n <= 2)
return 1;
else
return fibo(n - 1) + fibo(n - 2);
}