zoukankan      html  css  js  c++  java
  • 递归的现实应用

    问设有50个台阶的楼梯, 若一个人上楼梯跨出一步有三种迈法:一次上1个台阶, 一次上2个台阶, 一次上3个台阶。 问总共有多少种不同的上楼方式?

    考虑他迈最后一步的情况, 即最后一步上了1个台阶, 也可能上了2个台阶, 也可能上了3个台阶。

    Last step=1 -> 前边有(50-1) 个台阶-> 49个台阶有多少种上楼方式

    Last step=2 -> 前边有(50-2) 个台阶 -> 48个台阶有多少种上楼方式

    Last step=3 -> 前边有(50-3) 个台阶 -> 47个台阶有多少种上楼方式

    所以, 50个台阶情况=49个台阶的情况+48个台阶的情况+47个台阶的情况

    考虑开始,*--1*2指一次迈2个台阶

    1个台阶 -> 1种方式(1*1)

    2个台阶 -> 2种方式(1*1+1*1,1*2)

    3个台阶 -> 4种(1*3, 1*1+1*2, 1*2+1*1, 1*1+1*1+1*1)

            static int Matrix(int n)
            {
                if (n < 1)
                    return 0;
                if (n == 1)
                    return 1;
                else if (n == 2)
                    return 2;                    
                else if (n == 3)
                    return 4;
                else 
                    return Matrix(n - 3) + Matrix(n - 2) + Matrix(n - 1);
            }
  • 相关阅读:
    三、python语法(定义,赋值,注释,输入输出)
    二、Python安装
    一、python简介
    Java第十二天
    Java第十一天
    Java第十天
    Java第九天
    Java第八天
    Java第七天
    Java第六天
  • 原文地址:https://www.cnblogs.com/qixue/p/2515423.html
Copyright © 2011-2022 走看看