漢諾塔的玩法技巧 按規(guī)則移動(dòng)9層的漢諾塔最少需要多少步?
按規(guī)則移動(dòng)9層的漢諾塔最少需要多少步?根據(jù)公式,9層需要2^9-1=511步漢諾塔遞歸算法?1//河內(nèi)大廈2#包括<stdio。H>3 void Hanoi(int n,char a,char
按規(guī)則移動(dòng)9層的漢諾塔最少需要多少步?
根據(jù)公式,9層需要2^9-1=511步
漢諾塔遞歸算法?
1//河內(nèi)大廈
2#包括<stdio。H>
3 void Hanoi(int n,char a,char b,char c)//這里的意思是在b列的幫助下將a列上的板移動(dòng)到c列
4{if(1==n)//如果是板,將a列上的板移動(dòng)到c列
5{
6 printf(%c-->%cn”,a,c)
7}
8其他
9{
10 Hanoi n-1,a,c,b) //借助C列
11 printf(%C-->%Cn”,a,C)//將a列的最后一塊板直接移動(dòng)到C
12 Hanoi(n-1,b,a,C)//然后將b列的n-1塊板移動(dòng)到C
13}
14}
15 int main()
16{int n
17 printf(”輸入磁盤(pán):“)
18 scanf(%d”,&n)
19 Hanoi(n,“a”,“B”,“C”)
20返回0
21}
復(fù)制代碼