• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 筆試算法題:求6*7網格中的黑點分布

        時間:2023-04-05 02:31:46 筆試題目 我要投稿
        • 相關推薦

        筆試算法題:求6*7網格中的黑點分布

          求網格中的黑點分布。現有6*7的網格,在某些格子中有黑點,已知各行與各列中有黑點的點數之和,請在這張網格中畫出黑點的位置。(這是一網友提出的題目,說是他筆試時遇到算法題)

        筆試算法題:求6*7網格中的黑點分布

          #define ROWS 6

          #define COLS 7

          int iPointsR[ROWS] = {2, 0, 4, 3, 4, 0}; // 各行黑點數和的情況

          int iPointsC[COLS] = {4, 1, 2, 2, 1, 2, 1}; // 各列黑點數和的情況

          int iCount, iFound;

          int iSumR[ROWS], iSumC[COLS], Grid[ROWS][COLS];

          int Set(int iRowNo) {

          if(iRowNo == ROWS) {

          for(int iColNo=0; iColNo < COLS && iSumC[iColNo]==iPointsC[iColNo]; iColNo++)

          if(iColNo == COLS-1) {

          printf(“\nNo.%d:\n”, ++iCount);

          for(int i=0; i < ROWS; i++)

          for(int j=0; j < COLS; j++)

          printf(“%d%c”, Grid[i][j], (j+1) % COLS ? ‘ ‘ : ‘\n’);

          iFound = 1; // iFound = 1,有解

          }

          } else {

          for(int iColNo=0; iColNo < COLS; iColNo++) {

          if(iPointsR[iRowNo] == 0) {

          Set(iRowNo + 1);

          } else if(Grid[iRowNo][iColNo]==0) {

          Grid[iRowNo][iColNo] = 1;

          iSumR[iRowNo]++; iSumC[iColNo]++; if(iSumR[iRowNo] Set(iRowNo);

          else if(iSumR[iRowNo]==iPointsR[iRowNo] && iRowNo < ROWS)

          Set(iRowNo + 1);

          Grid[iRowNo][iColNo] = 0;

          iSumR[iRowNo]–;

          iSumC[iColNo]–;

          }

          }

          }

          return iFound; // 用于判斷是否有解

          }

          int main(int argc, char* argv[]) {

          if(!Set(0))

          printf(“Failure!”);

          }

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【筆試算法題:求6*7網格中的黑點分布】相關文章:

        迅雷2道算法類筆試真題11-21

        基于遺傳算法的OD分布03-21

        求筆試經驗11-19

        求DTT的筆試內容11-21

        求銀行的筆試形式11-21

        創新工場2014筆試算法題匯總附答案11-16

        筆試面試成績怎么算法11-12

        基于粒子群算法的分布式論文10-27

        名企筆試中不同的主觀題07-16

        搜狐筆試真題編程筆試真題07-23

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 最新日韩欧美理论在线 | 亚洲国产免费综合 | 日韩国产欧美中文综合 | 尤物萝控精品福利视频的 | 亚洲国内精品自在线影院 | 日本亚洲欧美在线视观看 |

            筆試算法題:求6*7網格中的黑點分布

              求網格中的黑點分布。現有6*7的網格,在某些格子中有黑點,已知各行與各列中有黑點的點數之和,請在這張網格中畫出黑點的位置。(這是一網友提出的題目,說是他筆試時遇到算法題)

            筆試算法題:求6*7網格中的黑點分布

              #define ROWS 6

              #define COLS 7

              int iPointsR[ROWS] = {2, 0, 4, 3, 4, 0}; // 各行黑點數和的情況

              int iPointsC[COLS] = {4, 1, 2, 2, 1, 2, 1}; // 各列黑點數和的情況

              int iCount, iFound;

              int iSumR[ROWS], iSumC[COLS], Grid[ROWS][COLS];

              int Set(int iRowNo) {

              if(iRowNo == ROWS) {

              for(int iColNo=0; iColNo < COLS && iSumC[iColNo]==iPointsC[iColNo]; iColNo++)

              if(iColNo == COLS-1) {

              printf(“\nNo.%d:\n”, ++iCount);

              for(int i=0; i < ROWS; i++)

              for(int j=0; j < COLS; j++)

              printf(“%d%c”, Grid[i][j], (j+1) % COLS ? ‘ ‘ : ‘\n’);

              iFound = 1; // iFound = 1,有解

              }

              } else {

              for(int iColNo=0; iColNo < COLS; iColNo++) {

              if(iPointsR[iRowNo] == 0) {

              Set(iRowNo + 1);

              } else if(Grid[iRowNo][iColNo]==0) {

              Grid[iRowNo][iColNo] = 1;

              iSumR[iRowNo]++; iSumC[iColNo]++; if(iSumR[iRowNo] Set(iRowNo);

              else if(iSumR[iRowNo]==iPointsR[iRowNo] && iRowNo < ROWS)

              Set(iRowNo + 1);

              Grid[iRowNo][iColNo] = 0;

              iSumR[iRowNo]–;

              iSumC[iColNo]–;

              }

              }

              }

              return iFound; // 用于判斷是否有解

              }

              int main(int argc, char* argv[]) {

              if(!Set(0))

              printf(“Failure!”);

              }