zoukankan      html  css  js  c++  java
  • 爬楼梯问题迭代算法解!

     有一段楼梯有10级台阶,规定每一步只能跨一级或两级或三级,要登上第10级台阶有几种不同的走法?

     思路:

    0节楼梯: 1  (0

    1节楼梯: 1  (1)

    2节楼梯: 2  (11、 2)

    3节楼梯: 4  (111、     12、   21、   3)

    4节楼梯: 7  (1111、   121、  211、 31、

                        13、

                        112、    22 )

       7=4+2+1

       4=2+1+1

       2=1+1+0

       1=1+0+0

    抽象f(n)=f(n-3)+f(n-2)+f(n-1)

           


            /// <summary>
            /// n为阶梯数
            /// </summary>
            /// <param name="n"></param>
            /// <returns>z 为走法数</returns>
           static long fib3(int n)
            {

                long x = 0, y = 0,z=1;
                long w, k;

                for (int j = 0; j < n; j++)
                {

                    w = z;
                    k = y;
                    z = x + y + z;
                    y = w;
                    x = k;
                    
                    
                }

                return z;

            }

            static void Main(string[] args)
            {
                for (int i = 1; i <= 10; i++)
                {
                    Console.WriteLine(fib3(i));
                }
                Console.Read();
            }

        }

    迭代法性能

     

    递归法性能 

     


            /// <summary>
            /// 递归算法
            /// </summary>
            /// <param name="n"></param>
            /// <returns></returns>
            static long dfib1(int n)
            {
                if (n < 1)
                { return 0; }

                if (n == 1)
                    return 1;
                if (n == 2)
                    return 2;
                if (n == 3)
                    return 4;

                
                

                return dfib1(n - 1) + dfib1(n - 2) + dfib1(n-3);

               

            } 

     

  • 相关阅读:
    prometheus之五:kube-state-metrics
    prometheus之四:node-exporter
    go语言基础
    EFK+kafka集群实战
    K8S 集群排错指南
    短信倒计时
    微信消息模板
    阿里大鱼
    mui下拉加载
    php无限极分类
  • 原文地址:https://www.cnblogs.com/zlddtt/p/1708273.html
Copyright © 2011-2022 走看看