回 帖 发 新 帖 刷新版面

主题:[讨论]求算法的时间复杂度

在这个程序中的算法时间复杂度我不知道怎么算,还请各位大虾指点!
#include<stdio.h>
long Fib(int n);
void main()
{
    int m;
    printf("请输入n的值:");
    scanf("%d",&m);
    printf("第%d项的值为:%ld\n",m,Fib(m));
}
long Fib(int n)
{
    if(n == 0 )
    {
        return 0;
    }
    else if(n == 1 || n == 2)
    {
        return 1;
    }
    else
    {
        return Fib(n - 1) + Fib(n - 2);      //当n>=3时Fib(n)的值
    }
}

回复列表 (共3个回复)

沙发

求费布拉西数列?时间复杂度是O(2^N)的?

板凳

嗯,我不会求类似于递归函数的算法时间复杂度。

3 楼

用数组记录一下、或者用通项公式直接求不就可以了。哈哈。

我来回复

您尚未登录,请登录后再回复。点此登录或注册