zoukankan      html  css  js  c++  java
  • python汉诺塔

    汉诺塔
    目标:把n个盘子从开始位置/start(A),通过中间位置/middle(B),移动到目的位置/end(C)
    效果图:

       -------->  

     思路:

    分三步: 
    一、把n-1从start(A)通过 middle(C)移动到 end(B) 效果图:

    二、把第n个数从 start(A)移动到 end(C) 效果图:


    三、把(n-1)整体从start(B),通过 middle(A),移动到 end(C) 效果图:





    代码实现:
     1 def hnt(start,middle,end,number):
     2     '''
     3     :param start:开始位置
     4     :param middle: 过渡位置
     5     :param end: 目的位置
     6     :param number: 盘子数量
     7     :return: None
     8     '''
     9     if number ==1:
    10         print("把%s移动到%s"%(number,end))
    11         return
    12     hnt(start,end,middle,number-1)
    13     print("把%s移动到%s"%(number,end))
    14     hnt(middle,start,end,number-1)
    15 
    16 n = int(input("请输入盘子数量").strip())
    17 hnt("A","B","C",n)
    方法二


    执行结果:

     1 请输入盘子的数量:4
     2 把1移动到B
     3 把2移动到C
     4 把1移动到C
     5 把3移动到B
     6 把1移动到A
     7 把2移动到B
     8 把1移动到B
     9 把4移动到C
    10 把1移动到C
    11 把2移动到A
    12 把1移动到A
    13 把3移动到C
    14 把1移动到B
    15 把2移动到C
    16 把1移动到C
    17 
    18 Process finished with exit code 0
    
    
    
  • 相关阅读:
    二维码
    struts2 result type=(chain、dispatcher、redirect、redirect-action)
    hibernate bean注解
    js uploadify
    2进制转化成字符串
    server.xml
    html css
    页面乱码
    java class 路径问题
    table th td 宽度
  • 原文地址:https://www.cnblogs.com/testlmh/p/8862485.html
Copyright © 2011-2022 走看看