关于转圈打印数字,输入指定行和列和起始值,自动完成打印
来源:互联网 发布:网络给手机发短信 编辑:程序博客网 时间:2024/06/04 08:40
要求按照如下格式循环转圈打印数字:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
受Jon Bentley(Programming Pearls的作者)的教诲,我对题目进行了重新的清晰定义:
输入:输入要打印矩阵的行(width)和列(high),起始值(矩阵左上角的的元素值)initvalue
输出:符合要求的转圈打印数字的矩阵
分析,在程序中我们只能按照行扫描打印,即打印函数主体是个双重循环
所以现在问题的关键转化为如何根据程序输入的起始值(initvalue),矩阵宽度(width)
,矩阵高度(high)来确定point(i,j)的值。
观察上面的矩阵,我们不难发现,对于该矩阵的最外层外壳,次外层内壳,........,它们的区别
仅是起始值和宽度和高度的不同,其生成逻辑完全一致,这就要我想到了递归,对了,就是递归
下面是我对该point(x,y)函数的实现:
ok,下面附上整个程序和运行测试结果:
请将文件保存为RotatingPrintNums.cc
[jim@ts850 algoriths]$ g++ -o RotatingPrintNums RotatingPrintNums.cc
[jim@ts850 algoriths]$ ./RotatingPrintNums
5 6 1
1 2 3 4 5 6
18 19 20 21 22 7
17 28 29 30 23 8
16 27 26 25 24 9
15 14 13 12 11 10
[jim@ts850 algoriths]$
2011-04-15
- 关于转圈打印数字,输入指定行和列和起始值,自动完成打印
- 打印DataGridView的指定的列和行
- 打印DataGrid的指定的列和行
- 二维数组的转圈打印和“之”字打印
- 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入多少打印几乘几的乘法表
- 打印二叉树行和列坐标
- DGV 指定列 只允许输入“数字和小数点(金额)” 和“数字”
- 关于 打印对象 和 打印对象.toString()
- c++ <输入数字n打印n行n列的矩形>
- 输入行列自动打印
- 转圈打印矩阵
- 转圈打印二维数组
- 转圈打印二维数组
- 转圈打印矩阵
- 转圈打印矩阵
- python---转圈打印矩阵
- 转圈打印矩阵
- 转圈打印矩阵
- Java这十年 - 与Java相关的四十个名字 (2)
- Java这十年 - 与Java相关的四十个名字 (2)
- Improve code desige use Unity
- SpringIOCLab--属性注入
- 4.14和4.15的吃汉堡问题
- 关于转圈打印数字,输入指定行和列和起始值,自动完成打印
- Nginx源代码分析--基本数据结构--hash
- 癞蛤蟆肉挺香的
- poj 1269
- Java人员面评
- Android SDK、NDK、JNI的简单介绍
- HibernateIocLab--Bean后处理
- 使用 Windows CE .NET 测试工具包
- Weblogic.Tomcat.Apache.JBoss.IIS之间的区别