漢諾塔和殘缺棋盤

2021-08-18 09:48:14 字數 1434 閱讀 5509

一、

漢諾塔問題

1遞迴法:

# include

# include

void move(int n,char a,char b,char c)

else

}int main()

結果:

法二:新增了移動次數

# include

# include

//列印出每一步的路徑

void move(char a,char c)

void hanoi(int n,char a,char b,char c,int *time)

}int main()

結果:

2、非遞迴

# include

# include

# define max 10 //棧的最大深度

int c=1;//表示目前移動步數

struct hanoi;

void move(char a,char n,char b)//移動函式,表示把某個盤從某根針移動到另一根針

void hanoi(int n,char a,char b,char c)//遞迴

else

}void push(struct hanoi *p,int top,char a,char b,char c,int n)

void unreverse_hanoi(struct hanoi *p)//非遞迴

if(p[top].n==1)

if(top>=0)}}

int main()

二、殘缺棋盤

tr子棋盤左上角方格所在行

tc子棋盤左上角方格所在列

dr殘缺方塊所在行

dc殘缺方塊所在列

size棋盤的行數或列數

# include

# include

int amount=0,board[100][100];

void cover(int tr,int tc,int dr,int dc,int size)

else if(dr=tc+s)

else if(dr>=tr+s && dc

else if(dr>=tr+s && dc>=tc+s)

}void outputboard(int size)

}void main()

結果

python 漢諾塔 Python漢諾塔

import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...

漢諾塔和函式

mylist 10,12 chang mylist print 函式外取值 mylist 結果 函式內取值 10,12,3,4 函式外取值 10,12,3,4 2 文件字串 help 是python中內建函式,通過help 函式可以查詢python中函式的用法 在定義函式時,可以在函式內部編寫文件字...

漢諾塔合集之漢諾塔3

漢諾塔3 步驟分析 1.當只有乙個圓盤時,要從a到b再到c 2.同樣擴充套件經典漢諾塔問題來看,先把a柱上 n 1 個圓盤,經b移動到c 3.把最後乙個圓盤從a移動到b 4.把c柱上的 n 1 個圓盤,經b移動 移回 到a 5.把b上的最後乙個圓盤從b移到c 6.最後把a上的 n 1 個圓盤經過b移...