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

  • 相关阅读:
    面向对象基础小结
    异常应用场景
    集合应用场景1:迭代器
    集合应用场景2——数据结构
    华为ce交换机 Bridge-Domain NVE
    linux 内核内置模块
    linux bridge 转发 ip
    iptables nat&conntrack
    loopback
    配置集中式网关部署方式的VXLAN示例(静态方式)
  • 原文地址:https://www.cnblogs.com/lin0/p/8677647.html
Copyright © 2011-2022 走看看