3-3蛇形填数
2015-11-19 14:57
267 查看
在n*n的方阵里填入1,2,...,n*n (n<=8),要求填成蛇形。
例如n=4时的方阵为:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
程序:
思路:定义二维数组,用0填满,控制输出。
关于4个while:由边界条件判断停止输出。若a[][]==0则输入,简写为!a[x+1][y]。
例如n=4时的方阵为:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
程序:
#include <iostream> #include <cstring> const int maxn = 20; using namespace std; int main() { int a[maxn][maxn]; int n, x, y,sum=0; cin >> n; memset(a, 0, sizeof(a)); sum=a[x=0][y=0]=1; while (sum<n*n) { while (y+1<n&&!a[x][y+1]) a[x][++y]=++sum;//必须为++sum; while (x+1<n&&!a[x+1][y]) a[++x][y]=++sum; while (y-1>=0&&!a[x][y-1])a[x][--y]=++sum; while (x-1>=0&&!a[x-1][y])a[--x][y]=++sum; } for (x=0;x<n;x++) { for (y=0;y<n;y++) cout<<a[x][y]<<" "; cout<<endl; } return 0; }
思路:定义二维数组,用0填满,控制输出。
关于4个while:由边界条件判断停止输出。若a[][]==0则输入,简写为!a[x+1][y]。
相关文章推荐
- elasticsearch-2.0.0 搭建集群的最简易配置
- UItableView系列——代理
- fresco使用文档地址
- MyFirst程序详解
- Thread.UncaughtExceptionHandler(为每一个Thread对象加一个异常处理器)
- SAP运行时状态条显示
- 转:Tomcat安装配置及站点说明
- 通过对源代码的反向工程学习CoreData架构
- linux 安装 tomcat
- Gradle
- Mybatis动态SQL
- LeetCode—306 Additive Number
- CSDN标题
- Android图片加载神器之Fresco-更灵活的设置加载特效[Java代码实现XML效果]
- 第十二周实践项目2—操作用邻接表存储的图
- stitching_detail算法介绍(转载)
- 解压版mysql相关配置(五种常见配置需求)
- Fresco的简单实用教程
- 数据结构 — 图的概述
- 机器学习笔记_数学基础_5-矩阵理论_续1_QR分解