網路城邦
回本城市首頁 唐老鴨之家
市長:  副市長:
加入本城市推薦本城市加入我的最愛訂閱最新文章
udn城市資訊科技網路分享【唐老鴨之家】城市/討論區/
討論區Excel VBA 字體:
看回應文章  上一個討論主題 回文章列表 下一個討論主題
求騎士走路問題所有解
 瀏覽1,932|回應1推薦0


等級:6
留言加入好友
Rem === 騎士走路問題 ===
Rem === 中斷執行請按Esc鍵
Dim a, b
Dim n As Integer

Private Sub CommandButton1_Click()
a = Array(2, 1, -1, -2, -2, -1, 1, 2)
b = Array(1, 2, 2, 1, -1, -2, -2, -1)
For i = 1 To 5
For j = 1 To 5
Cells(i, j) = 0
Next j
Next i
n = 0
Cells(3, 3) = 1
Call try(2, 3, 3)
End Sub

Sub prt()
For i = 1 To 5
For j = 1 To 5
Cells(i + n * 6, j + 6) = Cells(i, j)
Next j
Next i
n = n + 1
End Sub

Sub try(i, x, y)
For k = 0 To 7
u = x + a(k)
v = y + b(k)
If u > 0 And u < 6 And v > 0 And v < 6 Then
If Cells(u, v) = 0 Then
Cells(u, v) = i
If i < 25 Then
Call try(i + 1, u, v)
Else
Call prt
End If
Cells(u, v) = 0
End If
End If
Next k
End Sub
回應 回應給此人 推薦文章 列印 加入我的文摘

引用
引用網址:https://city.udn.com/forum/trackback.jsp?no=58536&aid=5035793
 回應文章
執行時間過長
推薦0



等級:6
留言加入好友

 
可按 ctrl + pause 中斷
回應 回應給此人 推薦文章 列印 加入我的文摘
引用網址:https://city.udn.com/forum/trackback.jsp?no=58536&aid=5324572