zoukankan      html  css  js  c++  java
  • 蓝桥杯第四届省赛第39级台阶

    题目描述:

    小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!
    站在台阶前,他突然又想着一个问题:
    如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?
    请你利用计算机的优势,帮助小明寻找答案。

    要求提交的是一个整数。
    注意:不要提交解答过程,或其它的辅助说明文字。

    思路:既然要求必须走偶数步,则在走的时候把左脚右脚分别走一步作为走一次。

    #include<stdio.h>
    
    int left[4] = { 1,1,2,2 };
    int right[4] = { 1,2,1,2 };//每次两步两步的走,左右脚搭配的方式
    int sum = 0;
    void dfs(int n) {
        //还剩多少节楼梯
        if (n == 0) {//恰好走完
            sum++;
            return;
        }
        if (n <= 1) {
            //剩一节或者这种走法已经走不通
            return;
        }
        int i;
        for (i = 0; i < 4; i++) {
            dfs(n - left[i] - right[i]);
        }
    }
    
    int main() {
        dfs(39);
        printf("%d", sum);
        return 0;
    }

    答案:51167078

  • 相关阅读:
    隔行扫描 和 逐行扫描
    CSS3--关于z-index不生效问题
    vue与其他框架对比
    跨域(转)
    vue 事件修饰符(阻止默认行为和事件冒泡)
    vue 3.0新特性
    bash leetcode
    数据库
    css排版
    盒模型
  • 原文地址:https://www.cnblogs.com/lin0/p/8677647.html
Copyright © 2011-2022 走看看