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

               

            } 

     

  • 相关阅读:
    学指令 emacs篇
    c 排序 总结
    C# WinForm源码下载
    PetShop下载
    Visual Studio常用技巧
    人事信息管理系统(PMS)
    css实现细表格原理
    GridView导出Excel/Word
    dotnet程序员装机必备工具
    容器练习一
  • 原文地址:https://www.cnblogs.com/zlddtt/p/1708273.html
Copyright © 2011-2022 走看看