永发信息网

编程:旋转方阵(nton);

答案:2  悬赏:50  手机版
解决时间 2021-06-01 18:36

方阵填数:nton.pas

在一个N N的方阵中,填入1,2,……N N个数,并要求构成如下的格式:

N=6

16 17 18 19 20 1

15 30 31 32 21 2

14 29 36 33 22 3

13 28 35 34 23 4

12 27 26 25 24 5

11 10 9 8 7 6

输入文件:只有一个数字:n(n<=20)

输出文件;输出所方阵,数字之间用空格隔开。

样例:

输入:

5

输出:

13 14 15 16 1

12 23 24 17 2

11 22 25 18 3

10 21 20 19 4

9 8 7 6 5

最佳答案

这个问题通用的解决方法是先把你初始矩阵以图中1 2 3 4 ……这样的顺序导入到一个一维数组中,然后再把这个一维数组以同样的方式导出为一个和上面格式一样的矩阵中,问题的关键在于如何以这样的方式遍列这个矩阵。以C语言来解决这个问题,我只写如何遍列这个矩阵,将它导入到一个一维数组中,余下的就简单了。


以上你这个矩阵我把它定义为一个二维数组,就定义在一个M[6][6]二维数组中


一维数组是A[]

全部回答
public class Test {     public static void main(String[] args) { writeF(6); System.out.println("\r\n"); writeF(5); System.out.println("\r\n"); writeF(4); System.out.println("\r\n"); writeF(3); System.out.println("\r\n"); writeF(2); System.out.println("\r\n"); writeF(1);     }     public static void writeF(int num) { int x = num - 1;// x坐标 int y = 0;// y坐标 int numti = num;// 代替起始数字 int[][] a = new int[num][num]; int begin = 1;// 起始的数字 int zui = 0;// 最低坐标 for (; y < numti; y++) {// 第一循环是y坐标增加处理    if(begin>num*num){ break;//判断不要让其数字大于本身需要排列数字,还进入整理    }    a[x + zui][y + zui] = begin;    begin++;    if (y == numti - 1) {// 在y轴达到顶峰值时,开始是x逐渐下降的时候 x--; for (; x >= 0; x--) {    a[x + zui][y + zui] = begin;    begin++;    if (x == 0) {// 在x轴达到底点时,开始是y轴下降时 y--; for (; y >= 0; y--) {    a[x + zui][y + zui] = begin;    begin++;    if (y == 0) {// 在y轴降到底点时,开始是x轴上升时,此时画三个边 x++; boolean jiru = false; for (; x < numti - 1; x++) {    jiru=true;    a[x + zui][y + zui] = begin;    begin++;    if (x == numti - 2) {// 此时画了一圈,开始需要跳出时 numti = numti - 2; y = -1; x = numti - 1; zui++; break;    } } if (!jiru) {// 避免前面x++时更改值,如果跳出循环会继续进入情况,如果没有进入前面循环,需要还原数据    x--;// 还原 } break;    } } break;    } }    } } for (int i = 0; i < num; i++) {// y    for (int j = 0; j < num; j++) {// x System.out.print(a[j][i] + "\t");    }    System.out.println(""); }     } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为了解草原上黄羊的数量,第一天,先捕上200
除了穿越三部曲,杰宝儿又出新专辑了吗?
选购显卡问题
招兵体检时间
为什么我进DNF老是接受频道失败?
电脑可以分为哪五大部分?
梦幻59宝宝伤害多少算好
魔兽世界关于DK
角色恢复后但不显示角色
为什么学五笔难!
怎样查询开通的红钻是否自动续费?
一本院校专业怎么转(越多越好)
问几个英语单词的意思。
详细介绍一下联通新势力各个校园套餐(宁波地
刀剑英雄2那个职业厉害
推荐资讯
非常6 1中奖查询网.(查询网) /非常6 1官方网
手机软件,求高手
f(x)=x^d*e^(-bx)用什么软件画图,matlab?详
提交后的问题 答案在哪里看得见
昆明市哪个书店大而且书种类多
睡觉时什么姿势最对身体有益?
对着电脑、脸发烫 、是什么原因啊
鬼剑士哪种职业PK好?
QQ炫舞 团名 ゛ˊ物sh!亼非? 十一种官职,现
今年是二零零几年?
w我祛痘怎样好呢?
谁帮忙解决怕冷这个问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?