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); }