程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#解法之漢諾塔(Hanoi)

C#解法之漢諾塔(Hanoi)

編輯:C#入門知識

上帝創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上安大小順序摞著64片黃金圓盤。
上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。

有預言說,這件事完成時宇宙會在一瞬間閃電式毀滅。也有人相信婆羅門至今還在一刻不停地搬動著圓盤。 

 

用的是遞歸原理

 代碼:

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

namespace HanoiProgram
{
    class Program
    {
        static long count = 0;
        static void move(char x,char y)
        {
            Console.WriteLine("{0}--->{1}",x,y);
        }
        static void hanoi(int n,char one,char two,char three)
        {
                if (n == 1)
                {
                    count+=2;
                    move(one, two);
                    move(two, three);
                }
                else
                {
                    count += 2;
                    hanoi(n - 1, one,two,three);
                    move(one, two);
                    hanoi(n - 1, three,two,one);
                    move(two,three);
                    hanoi(n - 1, one, two, three);
                }
        }
        static void Main(string[] args)
        {
            Console.WriteLine("需要搬幾個盤子");
            int n =
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved