6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)

计算并打印Fibonacci数列每一项时所需的递归调用次数,数列第一项从1开始。

要求:

1)定义表示调用次数的全局变量count;

2)定义用递归方法求Fibonacci数列的Fib()函数。

函数接口定义:

long Fib(int a);

a为大于0的正整数。

裁判测试程序样例:

#include <stdio.h>
long Fib(int a);

/* 你的代码将被嵌在这里 */

int main()
{
    int n, i, x;
    printf("Input n:");
    scanf("%d", &n);
    for (i=1; i<=n; i++)
    {
        count = 0;       //计算下一项Fibonacci数列时将计数器count清零 
        x = Fib(i);
        printf("Fib(%d)=%d, count=%d\n", i, x, count);
    }
    return 0;
}

输入样例:

3

结尾无空行

输出样例:

Fib(1)=1, count=1
Fib(2)=1, count=1
Fib(3)=2, count=3
int count=0;
long Fib(int a)
{
    count++;
    if(a==1||a==2)
        return 1;
    else 
        return Fib(a-1)+Fib(a-2);
    return count;
}
上一篇:java-面向对象-递归-斐波那契数


下一篇:【Hadoop离线基础总结】MapReduce参数优化