这道题类似斐波那契数列或者是小青蛙跳台阶,只不过加了一个限制条件:迈的步数是偶数。
对于迈的步数是偶数,只需要在函数里添加一个Step的变量就可以了。
解析:对于每一级台阶,小明都面临着迈一步还是两步的抉择,迈出了一步或者两步,剩下的台阶就会少1级或者2级,所以会有f(n-1),f(n-2),当你迈出的级数等于39并且步数为偶数时,那么说明你这一系列下来的操作是可行的,于是计数器cnt++。如果不满足条件,例如你迈出的总级数超过了台阶(n<0)或者步数为奇数(Step%2==1)说明你之前一系列的操作是不行的,于是就return。
代码如下:
算法分析:这应该是 一道深度优先搜索的简单题,因为小明在面对每一级台阶都面临着两个选择,有39级台阶,所以时间复杂度为O(2的39次方)。
【蓝桥杯2013年C/C++省赛真题】——39级台阶
最新推荐文章于 2022-03-24 18:37:36 发布