• 递归的现实应用


    问设有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);
            }
  • 相关阅读:
    攻防世界-web进阶-Web_php_include
    攻防世界-web进阶-php_rce
    Buuctf-misc-穿越时空的思念
    Buuctf-misc-[BJDCTF 2nd]EasyBaBa (kinovea)
    Buuctf-misc-菜刀666
    Buuctf-misc-[BJDCTF 2nd]圣火昭昭-y1ng(outguess)
    Access数据库简介
    VC与VB
    VB的使用
    工作总结2
  • 原文地址:https://www.cnblogs.com/qixue/p/2515423.html
Copyright © 2020-2023  润新知