高中生程式解題系統:a016: 數獨(SUDOKU)
2 min readNov 7, 2019
現在用程式來判斷一個九宮格數字是不是一個數獨的正解。
輸入的每一組測試資料均為 9 × 9 的矩陣,且全部為 1~9 的數字,每兩組九宮格之間以一空行作為分隔
若題目沒有特別說明,則應該以多測資的方式讀取,若不知如何讀取請參考 a001 的範例程式。
1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 1 3 4 5 6 7 8 9 1 2 4 5 6 7 8 9 1 2 3 5 6 7 8 9 1 2 3 4 6 7 8 9 1 2 3 4 5 7 8 9 1 2 3 4 5 6 8 9 1 2 3 4 5 6 7 9 1 2 3 4 5 6 7 8 1 9 3 2 6 5 4 7 8 7 8 2 3 1 4 9 5 6 4 5 6 9 7 8 1 3 2 2 3 4 8 5 1 6 9 7 9 6 5 4 3 7 2 8 1 8 7 1 6 9 2 3 4 5 3 1 9 5 8 6 7 2 4 5 2 7 1 4 3 8 6 9 6 4 8 7 2 9 5 1 3
由9個3×3個的九宮格組成。
每一列的數字均須包含 1~9,不能缺少,也不能重複。
每一行的數字均須包含 1~9,不能缺少,也不能重複。
每一宮(粗黑線圍起來的區域,通常是 3*3 的九宮格)的數字均須包含 1~9,不能缺少,也不能重複。
用一維陣列short sudoku[MATRIX_SIZE];來存3x3的九宮格,而陣列short matrix[SIZE];用來存每一個九宮格的數字。底下程式碼:
是用來記錄每個九宮格在sudoku[MATRIX_SIZE]的索引位置。
Originally published at https://yunlinsong.blogspot.com.