zoukankan      html  css  js  c++  java
  • 汉诺塔略写

    #include<stdio.h>
    void hanoi(int n,char A,char B,char C)/*n为积木的数量,ABC为三根柱子,A是起点,B是辅助点,C是终点*/ 
    {
         if(n==1) 
        {
            printf("%c -> %c
    ",A,C);/*只有一个盘子就直接A移动到C就好了*/ 
        }
        else
        {
            hanoi(n-1,A,C,B);/*把A中除了底部那块积木看成一个整体为n-1块,绕过C柱放到B*/ 
            printf("%c -> %c
    ",A,C);/*把剩下的最底下的那块放到C上*/ 
            hanoi(n-1,B,A,C);/*把放到B上的n-1块在放到C上*/ 
        }
    }
     int main()
     {
         hanoi(3,'A','B','C');
         return 0;     
     }

    这个代码比较简单,主要通过改变n的值来改变积木的数量,从最少的两块开始理解,A>B,A>C,B>C,然后开始用递归的思想,把除了最底下的那一块积木看成整体,即为“1”为一个整体,“n-1”为一个整体,开始循环开始的步骤就ok了,这就是汉诺塔游戏最简单的一种表达。

  • 相关阅读:
    ApplicationContext.xml修改
    springmvc.xml约束
    log4j.properties
    SqlMapConfig.xml配置文件
    Mybatis注解式开发坐标
    字符串函数
    vim基础快捷键
    format的使用
    lambda匿名函数
    字典的基础使用
  • 原文地址:https://www.cnblogs.com/zt1037054045/p/10851956.html
Copyright © 2011-2022 走看看