zoukankan      html  css  js  c++  java
  • 递归小问题之汉诺塔

    递归挺重要的,一定要会

    对于汉诺塔的理解,其实是很简单的,但是感觉也挺经典的:假设one,two,thr三个支柱,要将第一个支柱上的n个盘子移到第三个上,输出移动的顺序;

    1.其实也就是将n-1个盘子借助thr移到two上,

    2.然后将one上的第n个盘子移动到thr上;

    3.然后将two上的n-1个盘子移到thr上;

    而对于n-1个盘子如何来进行移动,则就属于递归调用了。

    #include<stdio.h>

    void move(char x,char y);

    void hano(int n,char one,char two,char thr);

    int main()

    {

       int m;

       printf("panzigeshu: ");

       scanf("%d",&m);

       printf("yidongbuzhou: ");

       hano(m,'A','B','C');

       return 0;

    }

    void move(char x,char y)

    {

      printf("%c-->%c ",x,y);

    }

    void hano(int n,char one,char two,char thr)

    {

      if(n==1)

         {

            move(one,thr);

         }

     else

       {

          hano(n-1,one,thr,two);

          move(one,thr);

          hano(n-1,two,one,thr);

       }

    }

  • 相关阅读:
    前言
    echarts踩坑---容器高度自适应
    vue中刷新页面时去闪烁,提升体验方法
    2018.11.7
    07-sel-express 框架快速搭建案例
    第三方包 vue-resource
    zepto.js-定制zepto步骤
    CSS-单位em 和 rem
    ES6-个人学习大纲
    响应式布局
  • 原文地址:https://www.cnblogs.com/jijiji/p/4270396.html
Copyright © 2011-2022 走看看