第39级台阶问题

题目


分析

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

简单描述下问题:有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;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值