• [蓝桥杯历届试题] 第39级台阶


    题目描述:

        小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!

        站在台阶前,他突然又想着一个问题:

        如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?


    输出格式:

    输出一个整数

    解题思路:

    不用管是左脚还是右脚迈,只要走的步数是偶数即可。递归的思想。

    代码(两种方法):

    #include <iostream>
    using namespace std;
    int total=0;
    
    /*int ss(int num,int step)
    {
    	if(num<0)
    	return 0;
    	if(num==0&&step%2==0)
    	{
    		total++;
    		return 0;
    	}
    	ss(num-1,step+1);
    	ss(num-2,step+1);
    }*/
    
    int s(int num,int step)
    {
    	if(num>39)
    	return 0;
    	if(num==39&&step%2==0)
    	{
    		total++;
    		return 0;
    	}
        s(num+2,step+1);
    	s(num+1,step+1);
    }
    int main(int argc, char *argv[]) {
    	//ss(39,0);
    	s(0,0);
    	cout<<total;
    	return 0;
    }

    答案:

    51167078


     

    以下内容转载于博客  http://blog.csdn.net/qsyzb/article/details/18991233

    这种递归的效果如下图:

    这个二叉树(本算法并不涉及二叉树知识,只是通过概念来理解)的每个叶子节点都是一种情况:

    我们将每一个节点称为(x,y)

    叶子节点分为两种情况:x为-1和x为0,x为-1的情况在现实中不可能发生,所以不予以考虑;

    我们对每一种x为0的情况都进行判断,如果y的值为偶数,则计数器加1。

  • 相关阅读:
    net core 3.1 依赖注入
    vue temeplete standard
    net core 3.1 Global
    vue Multiple selection
    c# mvc modelstate
    vue temeplete
    vue element pickdate combox input 排版
    c# 生成 验证码
    vue checkbox ajax
    js算法(2)
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697957.html
Copyright © 2020-2023  润新知