A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叨叨1 初级黑马   /  2017-3-5 23:30  /  1111 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

3.输入一个矩阵,按照从外向里逆时针顺序依次打印出每一个数字。(12分)
例如:
1        2        3        4
5        6        7        8
9        10        11        12
13        14        15        16
逆时针依次打印:4,3,2,1,5,9,13,14,15,16,12,8,7,6,10,11

这个问题怎么破

3 个回复

倒序浏览
输入的数存入二元数组,按指定角标打印出来试试
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
可以用循环的方式啊:总是横着一次 竖着一次一直循环的,方向就看索引,是第一个就慢加是最后一个就慢慢减啊,然后就是如何判断是否到头转向的问题,这个就把数组用一个新数组来装(这样就能保持原来的数组),然后每次打印一个数后把他重新赋值为一个新的数(这个数不能是原来里面有的)这样只要遇到这个特定的数就代表到头了需要转向了《这是数组可见的情况下,如果不可见就用另一种  [如果把打印一个新的一排或一列看做一组,从每组的个数就能看出规律比如你给的这个数组每次打印的个数为  4  3  3  2  2  1  1  0,到0就代表结束了第一次就是宽(高)之后减小1个数,连续俩次,在减小1个数在连续打印俩组依次循环到0就完了,这个输出的个数用个tag初始为1打印完一组就自减,到0就重新赋值为2就行了]》
以上就是我短时间想到的方法了,我是门外汉可能想到的方法比较笨,多包涵下!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
小T 发表于 2017-3-7 02:53
可以用循环的方式啊:总是横着一次 竖着一次一直循环的,方向就看索引,是第一个就慢加是最后一个就慢慢减 ...

还有这个索引改变的问题,上面是你指定了从哪个角开始,如果是随机角开始的话(看规律,其实方向改变是固定的那索引改变就一定有规律下面从索引来分析
11>21>31>41
41>42>43>44
44>34>24>14
14>13>12>11   
这就是所有情况能看出第一和第三种,当索引都是最大或最小时就是改变第一个索引。
而第二和第四则是改变第二个索引。
其实画图更容易理解你试试就知道了,如果需要顺时针输出那这个就刚好相反。
自加还是自减这个就更好判断啦)
话多别嫌弃哈,从小语文比较差!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马