问题,在不同的使用方式下返回的中间值会产生差异
实例环境: 64位 Windows10系统
Dev c++
实例函数
#include "stdio.h"
int i=0;
long int fib(int n)
{
i++;
if(n==1||n==2)
return 1;
else return fib(n-1)+fib(n-2);
}
int main ()//实例1
{int n;
long int fib1;
scanf("%d",&n);
fib1=fib(n);
printf("%ld %d\n",fib1,i);
}
#include "stdio.h"
int i=0;
long int fib(int n)
{
i++;
if(n==1||n==2)
return 1;
else return fib(n-1)+fib(n-2);
}
int main ()//实例2
{int n;
scanf("%d",&n);
printf("%ld %d\n",fib(n),i);
}
差异:
实例1
输入5,对应斐波那契数5,运算次数0;(即中间值为0);
实验2
输入5,对应斐波那契数5,运算次数9;(即中间值为9);
中间的数值有差异
by菜金