第39级台阶问题

版权声明:转载请注明出处 https://blog.csdn.net/Hanoi_ahoj/article/details/83548152

题目


分析

刚开始认为左脚右脚也有关系,仔细读了遍题,看了下网上的分析,才明白。

简单描述下问题:有39级台阶,每次可以上一个或者两个,走完台阶刚好走的是偶数步有多少种走法。

类似问题:青蛙跳台阶问题

先不考虑是偶数步还是奇数步,看看每次走一个台阶或两个台阶有多少种走法,设台阶个数为n。

  1. 第一步走一个台阶,则剩下n-1个台阶的走法
  2. 第一步走两个台阶,剩下n-2个台阶的走法
  3. 当n = 1时,只有一种走法,那就是走一个台阶
  4. 当n = 2时,两种走法,可以一次上去,也可以一个一个上去
  5. n = 0时,0种走法

列出公式:

再看问题要求:计算走完台阶后刚好是偶数步有多少种走法,需要再加一个变量来记录步数,还需要一个变量来记录走法数量,当步数为偶数时,走法➕1⃣️。

码儿:

#include <stdio.h>

int count = 0;	// 走法计数器

void fun(int taijie, int bushu)	// 台阶,步数
{
    if(taijie < 0)
    {
        return;
    }
    if(taijie == 0)
    {
        if(bushu%2 == 0)
        {
            count++;
        }
        return;
    }
    
    fun(taijie-1, bushu+1);
    fun(taijie-2, bushu+1);
}

int main(int argc, const char * argv[])
{
    fun(39, 0);	// 台阶,步数
    
    printf("%d\n", count);
    
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Hanoi_ahoj/article/details/83548152