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);

               

            } 

     

  • 相关阅读:
    哈夫曼树
    MongoDB
    Node.js 搭建Web
    Node.js
    HDFS编程
    scp
    MapRecude
    级数
    (转)MySQL百万级数据库优化
    ssh
  • 原文地址:https://www.cnblogs.com/zlddtt/p/1708273.html
Copyright © 2011-2022 走看看