• 汉诺塔1


    
    

    汉诺塔这种东西不能从程序的角度想 要从生活的角度想 原来从堆栈进出角度考虑就特别复杂 有些事是一层窗户纸 想多了反而没用

    
    

    if a上面只剩下一个盘子 移到c else 把n-1的盘子移到b a->c b->c

    
    
     
    using System;

    using System.Collections.Generic;
    using System.Text;

    namespace ConsoleApplication1.基础.算法
    {
    public class 汉诺塔
    {

    int count = 1;

    void move(int n,char x, char y)
    {
    Console.Write("" + count + "" + n + ":{0}-->{1}\n", x, y);
    }



    void hanoi(int n, char one, char two, char three)
    {


    if (n == 1)
    {
    move(n,one, three);
    count++;
    }
    else
    {
    hanoi(n - 1, one, three, two);
    move(n,one, three);
    count++;
    hanoi(n - 1, two, one, three);
    }
    }

    public void main1()
    {
    int m;
    Console.WriteLine("input the number of disks:");
    m=Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("the step to moving %3d diskes:\n", m);
    hanoi(m, 'A', 'B', 'C');
    }


    }


     

  • 相关阅读:
    120.三角形最短路径(leetcode)
    Python Pycharm中灵活运用debugger
    POJ 1284
    POJ 2407
    POJ 1811
    HDU 1164
    HDU 4228
    HDU 2521
    HDU 4133
    ZOJ 2562 反素数
  • 原文地址:https://www.cnblogs.com/frog2008/p/2331681.html
Copyright © 2020-2023  润新知