亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C語言 遞歸(回溯) 解決數獨問題

2019-11-14 11:31:39
字體:
來源:轉載
供稿:網友

基本思路:

利用dfs的思想,讓程序自動檢測未填入的格子,填入格子的順序按照先行后列依次填入,不滿足條件就回溯到上一格,重新檢測可填入的數再進行填入。其中可填入的條件按照一般做數獨的方法,若此格為空,則檢測出此格所在行、列、塊沒有的數字依次嘗試填入。

子函數的流程:

1、dfs搜索結束的條件

2、開始回溯的條件

3、正常情況下填入數字的流程

最終效果(在DEV-C++下運行):

輸入:005300000800000020070010500400005300010070006003200080060500009004000030000009700輸出:145327698839654127672918543496185372218473956753296481367542819984761235521839764

具體C語言代碼如下:

(此程序只解出了一個解)

#include "stdio.h"#include "stdlib.h"void dfs(int a[9][9], int row, int col){ int count = 0, d[9] = { 0 }; //d為記錄每一個可填入數的一維數組 //搜索結束,行列均累加至9 if (row == 9 && col == 9){  for (int i = 0; i < 9; i++){   for (int j = 0; j < 9; j++){    PRintf("%d", a[i][j]);   }   printf("/n");  }  return; } //開始回溯,即此格為零需要填入數字a[row][col] == 0,可是經過行、列、塊檢測無可填入的數count == 0 if (a[row][col] == 0){  for (int k = 0; k < 9; k++){//行檢驗   if (a[row][k] != 0){    d[a[row][k] - 1] = 1;   }//列檢驗   if (a[k][col] != 0){    d[a[k][col] - 1] = 1;   }  }//塊檢驗  for (int m = int(row / 3) * 3; m < int(row / 3) * 3 + 3; m++){   for (int n = int(col / 3) * 3; n < int(col / 3) * 3 + 3; n++){    if (a[m][n] != 0)     d[a[m][n] - 1] = 1;   }  }  for (int k = 0; k < 9; k++){   if (d[k] == 0) count++;  }  if (count == 0)   return;//正常情況下,填入d中記錄可填入的數,再進行對行列數進入到下一個的操作,如若下一個滿足回溯條件跳回原來的,則之前改變的還原  else{   for (int k = 0; k < 9; k++){    if (d[k] == 0){//填入d中記錄可填入的數     a[row][col] = k + 1;     d[k] = 1;//再進行對行列數進入到下一個的操作     if (col == 8 && row == 8){      col = col + 1;      row = row + 1;     }     else if (col == 8 && row < 8){      col = 0;      row += 1;     }     else if(col < 8 && row <= 8){      col += 1;     }     dfs(a, row, col); //進入下一格//如若下一個滿足回溯條件跳回原來的,則之前改變的還原     if (col == 0){      col = 8;      row -= 1;     }     else{      col--;     }     a[row][col] = 0;     d[k] = 0;    }   }  } }//若一格中已經提供了數,即a[row][col] != 0,則進行行列數的操作后,直接進入下一格 else{  if (col == 8 && row == 8){   col = col + 1;   row = row + 1;  }  else if (col == 8 && row < 8){   col = 0;   row += 1;  }  else if (col < 8 && row <= 8){   col += 1;  }  dfs(a, row, col); //進入下一格 }}int main(){ char temp[10]; int a[9][9] = { 0 }, d[9] = { 0 }, row = 0, col = 0;//輸入格式控制 for (int i = 0; i<9; i++)  {  gets(temp);  for (int j = 0; j<9; j++)  {   a[i][j] = int(temp[j] - '0');  } }printf("/n");  dfs(a, row, col); return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久av红桃一区二区小说| 国产高清视频一区三区| 亚洲丝袜一区在线| 日韩视频免费观看| 国产97人人超碰caoprom| 日本一区二区不卡| 日韩在线欧美在线国产在线| 亚洲缚视频在线观看| 欧美专区第一页| 国语自产精品视频在线看抢先版图片| 欧美亚洲成人xxx| 欧美精品videosex牲欧美| 国产情人节一区| 亚洲伦理中文字幕| 中文字幕亚洲二区| 美女视频久久黄| 欧美成年人视频| 亚洲欧美国产精品久久久久久久| 国产精品福利在线观看网址| 成人妇女免费播放久久久| 国产成人精品在线视频| 亚洲成人中文字幕| 欧美激情极品视频| 18性欧美xxxⅹ性满足| 成人久久久久久久| 欧美午夜女人视频在线| 欧美日韩成人在线观看| 国产精品白丝jk喷水视频一区| 欧美精品国产精品日韩精品| 亚洲国产精品va在线看黑人动漫| 91色视频在线导航| 欧美中文在线字幕| 亚洲欧美日韩综合| 国产精品成人免费电影| 91免费国产视频| 国产在线精品播放| 91久热免费在线视频| 在线播放精品一区二区三区| 久久久久久久影院| 日韩一级黄色av| 成人动漫网站在线观看| 国产激情综合五月久久| 国产精品成人aaaaa网站| 欧美激情二区三区| 国产精品偷伦免费视频观看的| 97av在线播放| 国外成人在线直播| 亚洲精品美女久久| 久久久久久久久久国产精品| 日韩国产在线看| 91久久久久久久久| 亚洲在线免费视频| 日韩欧美一区二区三区| 国产成人在线精品| 国产精品aaa| 久99九色视频在线观看| 欧美最猛性xxxxx(亚洲精品)| 国产精品中文在线| 亚洲人成电影在线| 亚洲免费福利视频| 欧美亚洲成人免费| 精品露脸国产偷人在视频| 91国偷自产一区二区三区的观看方式| 亚洲综合精品一区二区| 尤物tv国产一区| 欧美激情中文字幕乱码免费| 久久精品视频在线观看| 9.1国产丝袜在线观看| 久久久久一本一区二区青青蜜月| 91精品国产色综合久久不卡98口| 2019国产精品自在线拍国产不卡| 久热精品视频在线免费观看| 欧美极品少妇与黑人| www日韩中文字幕在线看| 欧美日韩爱爱视频| 中文在线资源观看视频网站免费不卡| 中文字幕国产精品久久| 成人免费视频在线观看超级碰| 久久久久久久国产精品| 亚洲国产欧美一区二区丝袜黑人| 亚洲韩国欧洲国产日产av| 国产精品在线看| 色婷婷综合久久久久| 久久中国妇女中文字幕| 国产日韩欧美在线看| 久久精品视频播放| 久色乳综合思思在线视频| 亚洲а∨天堂久久精品9966| 精品一区二区电影| 欧美日韩免费一区| 2018国产精品视频| 97人人做人人爱| 国内揄拍国内精品少妇国语| 在线观看不卡av| 欧美福利视频在线| 欧美视频在线观看免费| 中文字幕亚洲欧美日韩2019| 夜夜嗨av一区二区三区免费区| 久久天天躁夜夜躁狠狠躁2022| 国产婷婷97碰碰久久人人蜜臀| 久久97精品久久久久久久不卡| 91精品国产色综合久久不卡98口| 久久久av电影| 欧美在线性视频| 一区二区三区 在线观看视| 亚洲成人精品久久| 欧洲精品在线视频| 国产精品久久久久久久av大片| 欧美激情在线播放| 国产精品扒开腿做爽爽爽的视频| 久久偷看各类女兵18女厕嘘嘘| 国产精品热视频| 91香蕉嫩草神马影院在线观看| 亚洲精品自产拍| 亚洲国产第一页| 精品视频久久久久久久| 在线精品视频视频中文字幕| 日韩精品免费一线在线观看| 高清在线视频日韩欧美| 国产精品精品一区二区三区午夜版| 国产日韩av在线播放| 国产自摸综合网| 亚洲国产欧美一区二区三区同亚洲| 亚洲无线码在线一区观看| 国产亚洲成av人片在线观看桃| 1769国产精品| 狠狠综合久久av一区二区小说| 欧美性猛交xxxx乱大交蜜桃| 九九综合九九综合| 国产成人一区二区三区小说| 日韩视频在线观看免费| 国产精品v片在线观看不卡| 色吧影院999| 久热99视频在线观看| 成人午夜小视频| 久久久久久久久爱| 国产亚洲日本欧美韩国| 亚洲色图综合久久| 日韩久久免费电影| 日韩在线视频线视频免费网站| 尤物yw午夜国产精品视频明星| 亚洲国产精品va在线看黑人动漫| 精品久久久久久亚洲精品| 亚洲精品美女视频| 欧美大学生性色视频| 国产精品色悠悠| 美女久久久久久久久久久| 欧美影院成年免费版| 国产成人在线一区| 26uuu另类亚洲欧美日本一| 国模精品视频一区二区三区| 亚洲网站在线看| 久久久久久久一| 欧美精品www| 日韩电影中文字幕在线观看| 亚洲国产精品va| 日产精品99久久久久久| 久久国产精彩视频| 91爱爱小视频k| 精品视频在线播放免| 日韩欧美福利视频| 国产精品免费视频xxxx| 久久精品99久久久久久久久| 精品日本高清在线播放|