【编程题目】跳台阶问题(递归)

27.跳台阶问题(递归)
题目:一个台阶总共有 n 级,如果一次可以跳 1 级,也可以跳 2 级。
求总共有多少总跳法,并分析算法的时间复杂度。
这道题最近经常出现,包括 MicroStrategy 等比较重视算法的公司
都曾先后选用过个这道题作为面试题或者笔试题。

 

思路:不难 注意边界 就是时间复杂度我没求出来 上网搜的答案

/*

27.跳台阶问题(递归)

题目:一个台阶总共有 n 级,如果一次可以跳 1 级,也可以跳 2 级。

求总共有多少总跳法,并分析算法的时间复杂度。

这道题最近经常出现,包括 MicroStrategy 等比较重视算法的公司

都曾先后选用过个这道题作为面试题或者笔试题。

*/



#include <stdio.h>



int jump(int n)

{

    if(n == 1 || n == 2) //注意 边界情况

    {

        return n;

    }

    else if(n <= 0)

    {

        return 0;

    }

    else

    {

        int r1 = jump(n - 1);

        int r2 = jump(n - 2);

        return r1 + r2;

    }

}



int main()

{

    int ways = jump(4);

    return 0;

}



//斐波那契数列 时间复杂度 O(2^n)

 

你可能感兴趣的:(编程)