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. C# VS常用操作

    VS点击项目,就会打开文件,其实我只是想选中而已, 在这个地方可以改. 原文:https://blog.csdn.net/yellowegg/article/details/12217309

  2. mac 使用tesseract识别图片中的中文

    安装 tesseractbrew install tesseract 加入环境变量export TESSDATA_PREFIX=/usr/local/Cellar/tesseract/4.1.0/sh ...

  3. Django 的 slug url 正则匹配

    如果按照 .* 去匹配,最后会把 /edit/ 和 /delete/ 也匹配进去. urlpatterns = [ #... url(r'^(?P<slug>.*)/$', post_de ...

  4. tomcat做成Windows自启动服务

    一.下载Tomcat 下载Windows版本的tomcat,一般是以zip结尾的包,免安装的包,而Linux包虽然解压可以运行,但是缺少service.bat关键文件,无法做成服务形式 下载网站: h ...

  5. 东芝300D粉盒清零

    东芝300D粉盒清零 1:打开前盖 2:按"OK"键3秒,等 显示 "更换硒鼓"(注:不用选 是/否,直接进入第3步) 3:按"启用"键 4 ...

  6. Spring Cloud 学习--Hystrix应用

    上一篇介绍了Hystrix基本功能和单独使用的方式,今天继续学习如何将Hystrix融入SpringCloud组件中去. 在Ribbon上使用熔断器 在 pom.xml 文件中引入 hystrix 的 ...

  7. Evolutionary approaches towards AI: past, present, and future

    Evolutionary approaches towards AI: past, present, and future 2019-10-06 07:28:13 This blog is from: ...

  8. LZW

    LZW https://www2.cs.duke.edu/csed/curious/compression/lzw.html https://www.golangprograms.com/golang ...

  9. sumdoc t3 final dir.txt

    C:\Users\zhoufeiyue\Documents\sumdoc t3 final\sumdoc t3 final dir.txtC:\Users\zhoufeiyue\Documents\s ...

  10. css 设置div半透明 悬浮在页面底部 不随滚动条滚动

    .action-button { width: 100%; background:rgba(0,0,0,0.7); position:fixed; bottom:; left:; z-index:; ...