c/c++语言开发共享C/C++語言 – 日常算法 – 蛇形填數

C/C++語言 – 日常算法 – 蛇形填數 日期 : 2019-06-11 問題描述: 在n×n方阵里填入1,2,…,n×n,要求填成蛇形。 例如,n=4时方阵为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 上面的方阵中,多余的空格只是为了便于观察规律,不必严格输 …


c/c++語言 – 日常算法 – 蛇形填數

日期 : 2019-06-11

問題描述:

在n×n方阵里填入1,2,…,n×n,要求填成蛇形。

例如,n=4时方阵为:

10   11  12  1

9  16  13  2

8  15  14  3

7  6   5   4

上面的方阵中,多余的空格只是为了便于观察规律,不必严格输出。n≤8。

代碼部分

 

 1 #include <iostream>   2 #include <cstring>  // 提供 memset 函數,這是 c 的頭文件   3    4 using namespace std;   5    6 #define maxn 100   7 #define test2   8 #define result   9   10 int snakelike(void) {  11     // 蛇形填數  12 int a[maxn][maxn];  13 int row;  14     memset(a, 0, sizeof(a));  15     cout << "please input the row" << endl;  16     cin >> row;  17 #ifdef test  // 只是為了檢測代碼輸出情況  18     for (int i = 0; i < row; i++)  19     {  20         for (int j = 0; j < row; ++j)  21         {  22             a[i][j] = i;  23         }  24 }  25 #endif  26 #ifdef test2  27     int x = 0, y = row - 1,brush = 1;  28     a[x][y] = 1;  29     while(brush < row * row)  30     {  31         while (x + 1 < row && !a[x + 1][y]) { a[++x][y] = ++brush; }  32         while (y - 1 >= 0 && !a[x][y - 1]) { a[x][--y] = ++brush; }  33         while (x - 1 >= 0 && !a[x - 1][y]) { a[--x][y] = ++brush; }  34         while (y + 1 < row && !a[x][y + 1]) { a[x][++y] = ++brush; }  35     }  36   37 #endif  38   39 #ifdef result  40     cout << "---------result---------" << endl << endl;  41     int count = 0;  42     for (int i = 0; i < row; i++)  43     {  44         for (int j = 0; j < row; ++j)  45         {  46             cout << a[i][j] << "t";  47             count++;  48             if (!(count % row))  49             {  50                 cout << "b" << endl << endl;  51             }  52         }  53     }  54 #endif  55     return 0;  56     }  57         int main(int argc,char const *argv[])  58 {  59      snakelike();  60      return 0;  61 }  62     

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/603085.html

(0)
上一篇 2021年5月11日
下一篇 2021年5月11日

精彩推荐