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。

代碼部分

 #include <iostream>
#include <cstring> // 提供 memset 函數,這是 C 的頭文件 using namespace std; #define MAXN 100
#define test2
#define result int snakelike(void) {
// 蛇形填數
int a[MAXN][MAXN];
int row;
memset(a, , sizeof(a));
cout << "Please Input the row" << endl;
cin >> row;
#ifdef test // 只是為了檢測代碼輸出情況
for (int i = ; i < row; i++)
{
for (int j = ; j < row; ++j)
{
a[i][j] = i;
}
}
#endif
#ifdef test2
int x = , y = row - ,brush = ;
a[x][y] = ;
while(brush < row * row)
{
while (x + < row && !a[x + ][y]) { a[++x][y] = ++brush; }
while (y - >= && !a[x][y - ]) { a[x][--y] = ++brush; }
while (x - >= && !a[x - ][y]) { a[--x][y] = ++brush; }
while (y + < row && !a[x][y + ]) { a[x][++y] = ++brush; }
} #endif #ifdef result
cout << "---------result---------" << endl << endl;
int count = ;
for (int i = ; i < row; i++)
{
for (int j = ; j < row; ++j)
{
cout << a[i][j] << "\t";
count++;
if (!(count % row))
{
cout << "\b" << endl << endl;
}
}
}
#endif
return ;
}
int main(int argc,char const *argv[])
{
snakelike();
return ;
}

C/C++語言 - 日常算法 - 蛇形填數的更多相关文章

  1. GO語言基礎教程:流程控制

    在開始一個新的章節之前先來回顧上一篇文章的部份,首先我們來看這段代碼: package main import ( "fmt" ) func main(){ var x,y int ...

  2. <蛇形填数>--算法竞赛 入门经典(第2版)- 3.1 数组 程序3-3 蛇形填数

     蛇形填数: 在n×n方阵里填入1,2,....,n×n,要求填成蛇形.例如,n = 4 时方阵为:    10  11  12  1   9  16  13  2 8  15  14  3 7   ...

  3. GO語言基礎教程:數組,切片,map

    這節課我們來講解數組,切片和map,或許您是從其他語言轉到GO語言這邊的,那麼在其他語言的影響下您可能會不太適應GO語言的數組,因為GO語言把數組給拆分成了array,slice和map,接下來的時間 ...

  4. nyoj_33_蛇形填数_201308221636

    蛇形填数时间限制:3000 ms  |  内存限制:65535 KB 难度:3描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 13 28 ...

  5. nyoj33 蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.比如n=4时方陈为: 10 11 12 1 9 16 ...

  6. 【OI】蛇形填数题的深入探究

    题目:在 n×n 方阵里填入 1,2,...n×n, 要求蛇形填数.例如,n=4 时方阵为: 10  11  12  1 9    16  13  2 8    15  14  3 7     6  ...

  7. ACM 蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为:10 11 12 19 16 1 ...

  8. GO語言基礎教程:數據類型,變量,常量

    GO類似PHP,每行的結尾要加分號來結束,不同點在於GO對此並不強制,這一點又像javascript,另外GO的語句塊是用一對大括號來包裹的,但是go要求左大括號必須要在語句的結尾處,不能在行首出現左 ...

  9. GO語言基礎教程:Hello world!

    首先簡單地說一下GO語言的環境安裝,從 http://golang.org/dl/ 針對自己的操作系統選擇合適的安裝包,然後下載安裝即可,下載的時候注意別選錯了的操作系統,例如go1.3.1.darw ...

随机推荐

  1. 洛谷P2580 于是他错误的点名开始了 题解

    qwq!为什么!木有非结构体非指针的题解怎么阔以!所以, 我来辽~咻咻咻~ 题面 来分析, 我们可以先建一棵树,来存储整个名单, 然后再判断 ; i <= n; i++) { root = ; ...

  2. smartnic

    19年趋势: Intel® 2019网络技术研讨会圆满落幕 SANTOS: Flow and HQoS Acceleration Over DPDK Using Intel Programmable ...

  3. go语言Mac下编译安装语言包

    这两天公司成立了go语言学习兴趣小组,慕名参与了学习.目前对于go是0基础,只知道它可以做高并发.效率快.编译简单.母语是C. go的安装有多种形式,编译安装是比较慢的一个,今天我就记录一下学习go编 ...

  4. shell 给文件每一行都添加指定字符串

    [admin@localhost file]$ cat file hello hello hello hello hello [admin@localhost file]$ cat test.sh # ...

  5. web: 屏蔽button元素的空格键和enter响应

    用tab键可以在各种元素之间切换焦点,然后键盘上的空格和enter按键触发click事件,我这里不想要这种效果. 所以我需要屏蔽这两个按键. function keyup(e) { var currK ...

  6. Codeforces 828F Best Edge Weight - 随机堆 - 树差分 - Kruskal - 倍增算法

    You are given a connected weighted graph with n vertices and m edges. The graph doesn't contain loop ...

  7. java并发编程(一)线程状态 & 线程中断 & 线程间的协作

    参考文章: Java线程的5种状态及切换:http://blog.csdn.net/pange1991/article/details/53860651 线程的5种状态: 1. 新建(NEW):新创建 ...

  8. kafka(一)设计分析

    参考文档:Kafka 设计与原理详解:http://blog.csdn.net/suifeng3051/article/details/48053965Kafka深度解析:http://blog.cs ...

  9. WINDOWS 命令行调用SAS代码 并指定输出路径 示例

    ECHO "设置SAS.EXE 路径" SET PATH=D:\Program Files\SASHome\SASFoundation\9.4\SAS.EXE echo " ...

  10. nsqphp源码分析(一)

    一.目录结构 二.