解數獨演算法 C 實現

2021-06-16 11:11:29 字數 1291 閱讀 1063

時間比較倉促,未優化。大牛看客,勿

笑話。當然有好的建議,我洗耳恭聽。若有時間再用mfc寫乙個介面。

好了,廢話不多說,**如下:

#include

using namespace std;

//可選數字

int candidate = ;

//標記這個空格是否為原始資料

int g_a[9][9] = ;

//列印函式

void print( int (*a)[9] )

cout << endl;

}cout << endl;

}//判斷可以放哪些數字

void confirmcandidate( int (*a)[9], int i, int j )

for( int line = 0; line < 9; line++ )

for( int line = i/3*3; line < i/3*3+3; line++ )

}//標記每個空格位置

void totalnumbers( int (*a)[9], int i, int j )}}

//判斷所填數字是否正確

bool judgevalue( int (*a)[9],int i, int j )

//同一列有無重複數字

for( int line = 0; line < 9; line++ )

//乙個3*3的方格內有無重複數字

for( int line = i/3*3; line < i/3*3+3; line++ )

return true;

}//判斷是否成功

bool success( int(*a)[9], int i, int j )

else

}else if( c == 8 && candidate[c] <= a[line][colm] )

else set_colm--;

}return success( a, line - 1, set_colm);

}else

else colm--;

}return success( a ,line, colm-1 );}}

}}}return true;}

int main(),,

,,,,

,,};//test

/*int a[9][9] = ,,,

,,,,

,};*/ totalnumbers( a, 9, 9 );

success( a, 0, 0 );

print(a);

} 本文由

解數獨演算法 C 實現

時間比較倉促,未優化。大牛看客,勿笑話。當然有好的建議,我洗耳恭聽。若有時間再用mfc寫乙個介面。好了,廢話不多說,如下 include using namespace std 可選數字 int candidate 標記這個空格是否為原始資料 int g a 9 9 列印函式 void print ...

C 演算法 解數獨 條件遞迴

leetcode相關c 演算法解答 編寫乙個程式,通過已填充的空格來解決數獨問題。乙個數獨的解法需遵循如下規則 數字 1 9 在每一行只能出現一次。數字 1 9 在每一列只能出現一次。數字 1 9 在每乙個以粗實線分隔的 3x3 宮內只能出現一次。首先提取當前有的元素,放在三個vector 然後在使...

回溯演算法 解數獨

假設 判斷 假設 class solution def solve self,arr self.helper arr,0 defhelper self,arr,index if index 81 print arr return else if arr index 0 0代表需要填充資料 for i...