2023年藍橋杯 數獨遊戲

2021-09-12 10:14:41 字數 1862 閱讀 2379

你一定聽說過「數獨」遊戲。

如圖,玩家需要根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每乙個同色九宮內的數字均含1-9,不重複。

數獨的答案

本圖的數字據說是芬蘭數學家花了3個月的時間設計出來的較難的題目。但對會使用計算機程式設計的你來說,恐怕易如反掌了。

本題的要求就是輸入數獨題目,程式輸出數獨的唯一解。我們保證所有已知資料的格式都是合法的,並且題目有唯一的解。

格式要求:

輸入9行,每行9個數字,0代表未知,其它數字為已知。

輸出9行,每行9個數字表示數獨的解。

例如:輸入(即圖中題目):

005300000

800000020

070010500

400005300

010070006

003200080

060500009

004000030

000009700

程式應該輸出:

145327698

839654127

672918543

496185372

218473956

753296481

367542819

984761235

521839764

再例如,輸入:

800000000

003600000

070090200

050007000

000045700

000100030

001000068

008500010

090000400

程式應該輸出:

812753649

943682175

675491283

154237896

369845721

287169534

521974368

438526917

796318452

資源約定:

峰值記憶體消耗 < 256m

cpu消耗  < 2000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別。

這道題暴力破解,注意判斷當前位置是否可以放置該數字。

#include

#include

char a[10][10];

int b[10][10];

int n=10;

void str(int x)

return;

}int i,j,up,down,left,right;

i=x/9;

j=x%9;

up=i/3*3;

down=up+3;

left=j/3*3;

right=left+3;

if(a[i][j]!='0')

str(x+1);

else

}for(int m=up;mif(find==1)

a[i][j]='0';                               //重新置0不能少}}

}int main()

str(0);

return 0;

}

藍橋杯 數獨 DFS

題目 你一定聽說過 數獨 遊戲。如 圖1.png 玩家需要根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個同色九宮內的數字均含1 9,不重複。數獨的答案都是唯一的,所以,多個解也稱為無解。本圖的數字據說是芬蘭數學家花了3個月的時間設計出來的較難的題目。但對會使用計算...

藍橋杯數獨遊戲 C語言版

題目描述 你一定聽說過 數獨 遊戲。如 圖1.png 玩家需要根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個同色九宮內的數字均含1 9,不重複。數獨的答案都是唯一的,所以,多個解也稱為無解。本圖的數字據說是芬蘭數學家花了3個月的時間設計出來的較難的題目。但對會使用...

2023年藍橋杯五星填數

如 圖1.png 的五星圖案節點填上數字 1 12,除去7和11。要求每條直線上數字和相等。如圖就是恰當的填法。請你利用計算機搜尋所有可能的填法有多少種。注意 旋轉或映象後相同的算同一種填法。請提交表示方案數目的整數,不要填寫任何其它內容。如下 public class main public st...