漢諾塔的解決在程式裡實際上是乙個函式遞迴呼叫的過程。假設a上有
n個盤子,求解的大
致想法是想把
a最上面的
n-1個盤子借助c挪到
b,接著把
a最下面的最大的盤子挪到
c,再把b上的
n-1個盤子借助a挪到
c,完成。
首先先看
c#裡解決這個問題的**:
using
system;
using
system.collections.generic;
using
system.text;
namespace
hanoi
class
program
private
static
void
move(
intn,
char
a,char
b,char
c)if
(n == 1)
console
.writeline(
"move disc: --->"
, a, c);
return
move(n-1, a, c, b);//把a
最上面的
n-1個盤子借助c挪到
bconsole
.writeline(
"move disc: --->"
, a, c);//把a
最下面的最大的盤子挪到
cmove(n-1, b, a, c);把b
上的n-1
個盤子借助a挪到
cstatic
void
main(
string
args)
console
.write(
輸入盤子數量
intn =
convert
.toint16(
console
.readline());
move(n,
'a''b'
'c'console
.read();
怎麼理解漢羅塔問題 初學者如何深入理解漢諾塔問題?
今天我也看到遞迴了。我的思路如下,遞迴源於歸納,當n等於1時,推出結果。當n等於t 1時推出結果,並能由此推出,當n等於t時也推出結果,即m t 能表達出m t 1 的關係。第一步確定漢諾塔的結果是什麼。漢諾塔的結果就是當有幾個圓盤在原柱子時,結果就是就把這些柱子移到目標柱子。展開就是當n等於1時,...
怎麼理解漢羅塔問題 漢諾塔問題(三柱及四柱)詳解
漢諾塔 hanoi tower 又稱河內塔,傳說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,任何時候,在小圓盤上都不能放大圓盤,且在三根柱子之間一次只能移動乙個圓盤。問應該如何操...
怎麼理解漢羅塔問題 6 你是第幾流人才 理解層次
作者通過乙個下線零售店的困境,引出了 nlp 的概念。其中,理解層次是nlp中的乙個核心概念。在這個世界上,每一件與我們有關係的事,我們都會賦予其一些意義。但每個人對同一件事情所賦予的意義是不一樣的,因此,我們的理解就會不同,而理解的不同,各自給出的解決方案當然就會不同。nlp理解層次 把對一件事情...