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

C#.Net面試官問(wèn):漢諾塔算法

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

前言

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

概括

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

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

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

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

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

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

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

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

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

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);
     }
}

整個(gè)的代碼:

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個(gè)碟片,然后分別以字符串A,B,C代表三根柱子,進(jìn)行碟片移動(dòng)最終的結(jié)果是如下:

圖片圖片

三個(gè)碟片在三根柱子,A,B,C上進(jìn)行了7次挪動(dòng)。其它以此類(lèi)推。這里面主要是遞歸算法。

責(zé)任編輯:武曉燕 來(lái)源: 江湖評(píng)談
相關(guān)推薦

2022-04-18 10:01:07

Go 語(yǔ)言漢諾塔游戲

2021-12-02 18:20:25

算法垃圾回收

2021-11-08 09:18:01

CAS面試場(chǎng)景

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ā)問(wèn)

2021-01-06 05:36:25

拉鏈表數(shù)倉(cāng)數(shù)據(jù)

2021-05-11 21:56:11

算法清除JVM

2022-01-05 09:55:26

asynawait前端

2023-02-20 08:08:48

限流算法計(jì)數(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)鍵字
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美在线一区二区视频 | 黄色网址在线免费观看 | 欧美日韩精品一区二区三区蜜桃 | 久久1区 | 玖玖精品视频 | 激情五月婷婷综合 | 一级片在线观看 | 91精品国产欧美一区二区 | 在线国产一区二区 | 日韩免费| 亚洲人精品午夜 | 国产日韩欧美激情 | 国产激情一区二区三区 | 久久精品久久精品久久精品 | 久久久久久久久久久久久久久久久久久久 | 国产成人精品网站 | 亚洲国产欧美一区二区三区久久 | 亚洲美女一区二区三区 | 国产精品毛片无码 | 亚洲国产一区视频 | 一级黄色生活视频 | 欧美成人在线免费 | 欧州一区二区三区 | 999久久久| 国产欧美在线 | 九色av| 国产一区二区欧美 | 国产一区二区精品在线 | 一区二区精品在线 | 91av免费版| 久久久www成人免费精品张筱雨 | 亚洲国产日本 | 日韩三级免费观看 | 免费簧片视频 | 久视频在线观看 | 欧美国产日韩一区二区三区 | 91精品久久久 | 本道综合精品 | 狠狠av | 婷婷在线视频 | 亚洲一区久久久 |