C語言 數獨 遞迴

2021-08-10 14:36:56 字數 1095 閱讀 5302

時限:1000ms 記憶體限制:10000k  總時限:3000ms

描述數獨遊戲規則 

在9階方陣中,包含了81個小格(九列九行),其中又再分成九個小正方形(稱為宮),每宮有九小格。 

遊戲剛開始時,盤面上有些小格已經填了數字(稱為初盤),遊戲者要在空白的小格中填入1到9的數字,

使得最後每行、每列、每宮都不出現重複的數字,而且每乙個遊戲都只有乙個唯一的解答(稱為終盤)。

輸入乙個9*9的矩陣,0表示該位置是空白。

輸出乙個9*9的矩陣,格式與輸入類似。

輸入樣例

900050060

020070100

300102040

703800529

000345000

516009403

050208006

007090010

030010004

輸出樣例

971453268

428976135

365182947

743861529

892345671

516729483

154238796

687594312

239617854

#include

int a[9][9];

void search(int m);

int test(int n);

void output();

int main()

} }

search(0);

return 0; } 

void search(int m)

if(m==81)

if(m>=0&&m<=80)

if(a[x][y]==0)

a[x][y]=0; }

} }int test(int n)

for(j=0;j<=8;j++)

int l=(x/3)*3,c=(y/3)*3;

for(i=l;i<=l+2;i++)

} return 1; }

void output()

printf("\n"); }

}

C語言數獨遊戲求解

數獨遊戲的解法 先將數獨分為九個格仔,用乙個陣列將每個小九宮格的候選數存放下來,將候選數挨個放進數獨裡的空位,如果這一行和這一列都沒有這個數字,繼續放入下乙個,如果不能放入的話就回到上一步繼續嘗試,直到成功求出數獨的解為止 比如這個數獨第乙個九宮格的候選數就有1,2,7,8,9,我們需要從1開始放入...

(C語言)判斷數獨是否正確

數獨是源自18世紀瑞士的一種數學遊戲。是一種運用紙 筆進行演算的邏輯遊戲。玩家需要根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮 3 3 內的數字均含1 9,不重複。當然,肯定不會讓你用程式完成沒填好的數獨的。現在給你乙個9 9填滿了數的格仔,想讓你檢查一下...

C 數獨遊戲 遞迴,回溯,驗證是否滿足數獨

你不去做,別人不知道你會做 送給我自己。題設 在9 9的數獨 內輸入幾個數字,自動完成數獨 準備 在充分理解遞迴,回溯之後,完成這個題目就不難了。但是高效能完成就還是得研究。原理概要 採用棧的資料結構模型存入已經輸入過得數獨 此時應該只有幾個 有數字,我們採用乙個標記數字記下這些數字位置,他們是不能...