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

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

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

2019-11-14 11:35:04
字體:
來源:轉載
供稿:網友

基本思路:

利用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| 亚洲天堂网在线观看| 在线观看中文字幕亚洲| 亚洲精品成人久久久| 欧美美最猛性xxxxxx| 亚洲人成电影在线| 久久久久久久一区二区| 午夜精品在线观看| 亚洲永久免费观看| 在线观看日韩www视频免费| 北条麻妃在线一区二区| 国产91在线高潮白浆在线观看| 国产精品永久免费| 日韩高清欧美高清| 日本亚洲欧美成人| 精品中文视频在线| 国产成人精品久久二区二区91| 日本欧美一二三区| 亚洲片在线观看| 2018中文字幕一区二区三区| 色综合久久中文字幕综合网小说| 欧美黄色片在线观看| 国产aaa精品| 亚洲精品福利在线| 欧美尤物巨大精品爽| 亚洲精品久久久久久下一站| 日韩av电影院| 国产美女久久精品香蕉69| 亚洲精品美女在线观看播放| 九九热精品在线| 国产精品日韩av| 91精品在线播放| 欧美精品aaa| 尤物tv国产一区| 国产精品一区电影| 欧美激情精品久久久久久变态| 欧美日韩免费一区| 91九色国产视频| 日韩在线观看电影| 国产精品video| 97视频在线观看成人| 精品久久香蕉国产线看观看亚洲| 亚洲精品国产欧美| 亚洲伦理中文字幕| 91极品视频在线| 欧美国产亚洲视频| 欧洲精品在线视频| 欧美视频中文字幕在线| 日韩乱码在线视频| 欧美激情欧美狂野欧美精品| 国产一区玩具在线观看| 亚洲跨种族黑人xxx| 蜜臀久久99精品久久久久久宅男| 亚洲人成在线观| 国产精品免费视频久久久| 亚洲欧美激情精品一区二区| 亚洲欧美制服另类日韩| 欧洲日本亚洲国产区| 国产日韩欧美电影在线观看| 国产精品久久国产精品99gif| 97视频网站入口| 亚洲天堂日韩电影| 91精品国产综合久久久久久蜜臀| 2019最新中文字幕| 亚洲第一网站免费视频| 亚洲综合中文字幕在线观看| 久久久久久久久久国产| 欧美高清视频在线播放| 久久色精品视频| 一区二区三区四区视频| 亚洲美女黄色片| 成人性生交xxxxx网站| 久久精品国产清自在天天线| 国产精品在线看| 成人精品福利视频| 自拍偷拍亚洲区| 国产综合福利在线| 国产一区二区三区毛片| 日韩网站免费观看| 青青草99啪国产免费| 日韩精品中文在线观看| 在线一区二区日韩| 国产精品电影一区| 国产精品久久久91| 日韩毛片中文字幕| 久久99国产综合精品女同| 国产精品久久久久福利| 亚洲在线免费视频| 国产欧美日韩免费看aⅴ视频| 中文字幕不卡在线视频极品| 在线观看国产精品日韩av| 国产婷婷97碰碰久久人人蜜臀| 欧美一级淫片丝袜脚交| 日韩高清欧美高清| 久久久精品一区| 欧美精品电影在线| 国产精品永久免费在线| 成人午夜在线观看| 日韩国产欧美区| 97免费在线视频| 亚洲综合社区网| 精品福利在线观看| 日韩av在线一区| 国产精品成人aaaaa网站| 久久久人成影片一区二区三区观看| 日韩的一区二区| 日韩网站免费观看| 日韩最新中文字幕电影免费看| 蜜臀久久99精品久久久无需会员| 日韩精品视频在线免费观看| 成人国产精品日本在线| 国产精品99久久久久久久久久久久| 亚洲曰本av电影| 中文字幕一区二区三区电影| 日韩精品中文在线观看| 欧美日韩在线视频首页| 疯狂做受xxxx高潮欧美日本| 亚洲淫片在线视频| 国内精品久久久久久影视8| 亚洲欧美国产一区二区三区| 亚洲电影免费在线观看| 91高清视频免费| 91视频免费网站| 亚洲爱爱爱爱爱| 成人h猎奇视频网站| 97免费视频在线| 国内精品一区二区三区| 亚洲摸下面视频| 日本精品久久久久久久| 欧美午夜宅男影院在线观看| 亚洲精选一区二区| 国内精品久久久久久| 最近2019年日本中文免费字幕| 日韩一级裸体免费视频| 国产成人+综合亚洲+天堂| 国产一区二区三区在线观看视频| 国产精品视频区| 久久这里有精品| 中文字幕日韩欧美| 国产视频精品免费播放| 最近免费中文字幕视频2019| 国产精品第一页在线| 久久99国产精品自在自在app| 欧美性猛交xxxx富婆弯腰| 欧美亚洲第一页| 国产日韩av在线播放| 日韩欧美成人区| 成人h片在线播放免费网站| 国产亚洲a∨片在线观看| 深夜成人在线观看| 中文字幕一精品亚洲无线一区| 欧美激情精品久久久久久大尺度| 在线视频欧美日韩| 成人美女免费网站视频| 日韩精品视频中文在线观看| 久久久精品一区|