成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#.Net面試官問:漢諾塔算法

開發(fā) 前端
如果大于1個碟片,假設(shè)為n。則遵循先把n-1個碟片從小到大的順序從柱子1借助柱子3挪到柱子2,然后把剩余的最后一個碟片從柱子1挪到柱子3,最后把柱子2的n-1個碟片從小到大的順序借助柱子1挪到柱子3,完成整個過程。

前言

現(xiàn)在不僅各大編程語言卷,也順帶感染了C#的內(nèi)卷。有人面試被問到,漢諾塔算法.這個算法比較有意思。網(wǎng)上C語言較多,本篇來看下C#。

概括

漢諾塔,據(jù)說一個古印度的黃金碟片的游戲。把一根柱子上疊好的一堆碟片從小到大的順序,借助第二根柱子挪到第三根柱子上。

注意這里有幾個點
其一:碟片的數(shù)量
其二:三根柱子
其三:從小到大借助挪動
其四:小碟片必須在大碟片之上,任何一個。

應(yīng)該如何做呢?碟片的數(shù)量未知,這里假設(shè)為n(int)。三根柱子(字符類型),第一根柱子one,第二根柱子two,第三根柱子three。作為參數(shù),可以構(gòu)建如下函數(shù),函數(shù)名為:Hannuo:

static void Hannuo(int n, char one, char two, char three)
{
}

柱子之間碟片的挪動,另取一個函數(shù),用以記錄:

static void move(char x, char y)
{
    Console.Write(x + "->" + y + "\r\n");
}

假設(shè)只有一個碟片,直接從柱子1挪到柱子3即可,所以函數(shù)里面需要判斷下:

static void Hannuo(int n, char one, char two, char three)
{
    if (n == 1) move(one, three);
}

如果大于1個碟片,假設(shè)為n。則遵循先把n-1個碟片從小到大的順序從柱子1借助柱子3挪到柱子2,然后把剩余的最后一個碟片從柱子1挪到柱子3,最后把柱子2的n-1個碟片從小到大的順序借助柱子1挪到柱子3,完成整個過程。完成代碼如下:

static void Hannuo(int n, char one, char two, char three)
{
     if (n == 1) move(one, three);
     else
     {
        Hannuo(n - 1, one, three, two);
        move(one, three);
        Hannuo(n - 1, two, one, three);
     }
}

整個的代碼:

static void Hannuo(int n, char one, char two, char three)
{
    if (n == 1) move(one, three);
    else
    {
         Hannuo(n - 1, one, three, two);
         move(one, three);
         Hannuo(n - 1, two, one, three);
    }
}
static void move(char x, char y)
{
    Console.Write(x + "->" + y + "\r\n");
}
static void Main(string[] args)
{
    Hannuo(3, 'A', 'B', 'C');
    Console.ReadLine();
}

這里的Main函數(shù),里面?zhèn)鬟f了3個碟片,然后分別以字符串A,B,C代表三根柱子,進行碟片移動最終的結(jié)果是如下:

圖片圖片

三個碟片在三根柱子,A,B,C上進行了7次挪動。其它以此類推。這里面主要是遞歸算法。

責任編輯:武曉燕 來源: 江湖評談
相關(guān)推薦

2022-04-18 10:01:07

Go 語言漢諾塔游戲

2021-12-02 18:20:25

算法垃圾回收

2021-11-08 09:18:01

CAS面試場景

2021-12-25 22:31:10

MarkWord面試synchronize

2024-07-26 08:47:07

2021-12-16 18:38:13

面試Synchronize

2010-08-23 15:06:52

發(fā)問

2021-01-06 05:36:25

拉鏈表數(shù)倉數(shù)據(jù)

2021-05-11 21:56:11

算法清除JVM

2022-01-05 09:55:26

asynawait前端

2023-02-20 08:08:48

限流算法計數(shù)器算法令牌桶算法

2024-08-19 09:13:02

2020-07-28 00:58:20

IP地址子網(wǎng)TCP

2024-06-04 07:38:10

2025-06-03 07:05:00

Linux操作系統(tǒng)Windows

2009-08-28 09:29:02

2009-08-25 13:53:20

C#.NET rege

2009-08-26 14:23:14

C#.Net Fram

2021-03-24 10:25:24

優(yōu)化VUE性能

2018-01-19 10:43:06

Java面試官volatile關(guān)鍵字
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品一区二区久久 | 国产精品久久久久久久免费大片 | 91精品导航| 九九热在线免费观看 | 日日操操| 日韩亚洲一区二区 | 亚洲精品日韩一区二区电影 | av在线电影网 | 一区二区中文字幕 | www.久久国产精品 | 欧洲av在线| 国产亚洲精品美女久久久久久久久久 | 亚洲欧美日韩一区二区 | 亚洲人成一区二区三区性色 | 午夜影院在线观看 | 日韩欧美国产一区二区三区 | 亚洲国产成人精品女人 | 精品中文字幕一区二区三区 | 久久精品亚洲精品国产欧美 | av中文字幕在线观看 | 午夜欧美日韩 | 欧美一区精品 | 亚洲视频手机在线 | 亚洲欧美综合精品久久成人 | 五月天综合影院 | 亚洲男人的天堂网站 | 国际精品久久 | 国产精品成av人在线视午夜片 | 97影院2 | 久久久www成人免费无遮挡大片 | 国产精品海角社区在线观看 | 九色porny自拍视频 | 全部免费毛片在线播放网站 | 黄色大片视频 | 老牛嫩草一区二区三区av | 免费一区 | 男女免费视频网站 | 亚洲精品3 | 日韩精品一区二区三区 | 欧美精品久久久久久 | 日韩成人在线免费视频 |