读书人

Fibonacci(50)调用次数解决办法

发布时间: 2013-11-23 10:52:51 作者: rapoo

Fibonacci(50)调用次数

#include <stdio.h>
long fibonacci(int n);
int cal=0;//这里是计数变量,计算调用函数总次数,为什么用int声明运行结果为-597265727?而改为unisgned long后结果还是-597265727?
int main(void)
{
fibonacci(50);
printf("%d\n",cal);
}
long fibonacci(int n)
{
cal++;
if(n<=2)
return 1;
return fibonacci(n-1)+fibonacci(n-2);
}

[解决办法]
输出无符号数要用%u,不过50可能已经超过无符号数的最大值了
[解决办法]
50次
得用64位整形。
[解决办法]
因为调用的次数是第n项的值的两倍-1,求第50项,调用的次数已超出范围
[解决办法]
__INT64

读书人网 >C语言

热点推荐