-- 在虚拟机中运行时提前定义N if (type(N) ~= "number") then print("Have not defined a number 'N' previously. Now N = 8") N = 8 end local function isPlaceOk(a, n, c) for i = 1, n - 1 do if (a[i] == c) or (a[i] - c == n - i) or (a[i] - c == i - n) then return false end end return true end local function printBoard(a) for i = 1, N do for j = 1, N do io.write(a[i] == j and "X" or "-", " ") end io.write("\n") end io.write("\n") end function AddQueen(a, n) if (n > N) then printBoard(a) else for i = 1, N do if (isPlaceOk(a, n, i)) then a[n] = i AddQueen(a, n + 1) end end end end AddQueen({}, 1)
Practice: N-Queen
Created
Feb 18, 2025 09:35 AM