你的值超过int表示的最大正数了,int类型换成unsignedint或者double类型试试,输出结果的时候,不输出小数点
看这里,你的函数返回值为整形int fib(long n)整形的范围是 -32768~32767;必然是溢出了。
我用个Gcc编译运行后,是正确的哦! 23==46368[
经过测试,23的时候也可以返回正确的值