c++遞歸解數(shù)獨(dú)方法示例
#include<iostream>
using namespace std;
void init();
void function(int m);
int canplace(int row,int col,int c);
void outputresult();
int a[9][9], maxm = 0;
int main()
{
init();
function(0);
return 0;
}
void init()
{
int i, j;
for(i = 0; i < 9; i++)
{
for(j = 0; j < 9; j++)
{
cin >> a[i][j];
}
}
}
void function(int m)
{
int i, j, row, col;
if (m >= 81)
{
outputresult();
}
else
{
row = m / 9;
col = m % 9;
if(a[row][col] != 0)
{
function(m+1);
}
for(i = 1; i <= 9; i++)
{
if(canplace(row,col,i) == 1)
{
a[row][col] = i;
function(m + 1);
a[row][col] = 0;
}
}
}
}
int canplace(int row,int col,int c)
{
int i, j;
int flag = 1;
for(i = 0; i < 9; i++ )
{
if(a[row][i] == c || a[i][col] == c)
{
flag = 0;
break;
}
}
if(flag != 0)
{
for(i = (row / 3) * 3; i < (row / 3) * 3 + 3; i++)
{
for(j = (col / 3) * 3; j < (col / 3) * 3 + 3; j++)
{
if(a[i][j] == c)
{
flag = 0;
break;
}
}
if(flag == 0)
{
break;
}
}
}
return flag;
}
void outputresult()
{
int i, j;
for(i = 0; i < 9; i++)
{
if(i % 3 == 0)
{
cout << endl;
}
for(j = 0; j < 9; j++)
{
if(j % 3 == 0)
{
cout << " ";
}
cout << a[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
相關(guān)文章
opencv3/C++ 使用Tracker實(shí)現(xiàn)簡(jiǎn)單目標(biāo)跟蹤
今天小編就為大家分享一篇opencv3/C++ 使用Tracker實(shí)現(xiàn)簡(jiǎn)單目標(biāo)跟蹤,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
c++語(yǔ)言中虛函數(shù)實(shí)現(xiàn)多態(tài)的原理詳解
這篇文章主要給大家介紹了關(guān)于c++語(yǔ)言中虛函數(shù)實(shí)現(xiàn)多態(tài)的原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c++語(yǔ)言具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
C C++算法題解LeetCode1408數(shù)組中的字符串匹配
這篇文章主要為大家介紹了C C++算法題解LeetCode1408數(shù)組中的字符串匹配示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
c語(yǔ)言_構(gòu)建一個(gè)靜態(tài)二叉樹(shù)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇c語(yǔ)言_構(gòu)建一個(gè)靜態(tài)二叉樹(shù)實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Qt實(shí)現(xiàn)兩個(gè)獨(dú)立窗口的信號(hào)通信
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)兩個(gè)獨(dú)立窗口的信號(hào)通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
C++演講比賽管理系統(tǒng)實(shí)現(xiàn)流程實(shí)例
這篇文章主要介紹了C++演講比賽管理系統(tǒng)實(shí)現(xiàn)流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10
C語(yǔ)言編程C++旋轉(zhuǎn)字符操作串示例詳解
這篇文章主要為大家介紹了C語(yǔ)言編程中C++旋轉(zhuǎn)字符操作串示例詳解,文中附含詳細(xì)圖文示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
C語(yǔ)言中的字符串?dāng)?shù)據(jù)在C中的存儲(chǔ)方式
這篇文章主要介紹了C語(yǔ)言中的字符串?dāng)?shù)據(jù)在C中的存儲(chǔ)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

