zoukankan      html  css  js  c++  java
  • 睡不着,随便写了下汉诺塔的解决方法。

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

    namespace ConsoleApplication1
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {

                    
    int times = new HanoiTower(3).SolveTower();
                
                Console.WriteLine(
    "一共需要{0}次", times);

                Console.ReadKey();
            }

        }


        
    class HanoiTower
        
    {
            
    private int plates;
            
    public HanoiTower(int plates)
            
    {
                
    this.plates = plates;
            }

            
    public int SolveTower()
            
    {
                
    return SolveTower(plates, "A""B""C");
            }

            
    private int SolveTower(int plates,string a, string b, string c)
            
    {
                
    int count = 0;
                
    if (plates <= 0)
                    
    throw new ArgumentOutOfRangeException("plates","盘子数必须是大于0的整数");
                
    if (plates == 1)
                

                    move(a, c);
                    
    return 1;
                }

                count 
    += SolveTower(plates - 1, a, c, b);
                count 
    += SolveTower(1, a, b, c);
                count 
    += SolveTower(plates - 1, b, a, c);
                
    return count;

            }

            
    private void move(string a, string c)
            
    {
                Console.WriteLine(a 
    + " => " + c);
            }

        }

    }

    张旋(zxsoft)
    如对本文有什么疑问,请在下面写下留言,谢谢!

  • 相关阅读:
    Hbase 笔记(4) 客户端API高级性能
    Hbase 笔记(3) 客户端API基础
    Hbase 笔记(2) 安装
    HBase 笔记(1) 简介
    Global 和 Local 索引。
    Phoenix Tips (14) mutable 和 immutable 表区别
    Phoenix Tips (13) 统计收集
    Phoenix Tips (12) 跟踪 Tracing
    Phoenix Tips (11) Skip Scan
    Phoenix Tips (10) 分页查询
  • 原文地址:https://www.cnblogs.com/zxsoft/p/1210400.html
Copyright © 2011-2022 走看看