当统计递归函数被调用的次数时,可以定义一个全局变量,将全局变量插入到递归函数中,通过函数调用的副作用来统计递归函数的调用次数
//如下程序的功能是计算 Fibonacci数列的第n项。函数fib()是一个递归函数。请你改写该程序,计算第n项的同时,统计调用了多少次函数fib(包括main()对fib()的调用)
#include<stdio.h>
int cnt=0;
int fib(int k);
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", fib(n));
printf("递归调用了%d次",cnt);
return 0;
}
int fib(int k)
{
cnt++; //累加表示次数
if(k == 1 || k == 2)
{
return 1;
}
else
return fib(k-1) + fib(k-2);
}
本文介绍了如何在计算Fibonacci数列第n项的递归函数fib中,通过添加全局变量并利用函数调用的副作用统计调用次数,同时执行函数和输出调用次数。
441





