输出矩阵

tiger002 2011-09-08 12:59:01
请各位帮忙实现输入如下矩阵代码:
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyuhua0066 2011-09-08
  • 打赏
  • 举报
回复

public static void main(String[] args) {
int n=4;//方阵大小
int[][] data = new int[n][n];
int dire; //当前数字的移动方向
final int UPRIGHT = 0; //上右
final int DOWN = 1; // 下
final int LEFTDOWN= 2; //左下
final int RIGHT = 3;// 右
dire = RIGHT;//第一次向右移动
int value = 1; //数组元素的值
int row = 0; //第一维下标
int col = 0; //第二维下标
data[0][0] = 1; //初始化第一个元素
data[n-1][n-1] = n*n;
while(value < n * n-1){
switch(dire){
case DOWN:
row++; //移动到下一行
if(row>=n){ //超过边界
row--; //后退
dire = RIGHT;
continue; //跳过该次循环
}
else
{
value++; //数值增加1
data[row][col] = value;//赋值
if(col==0) {
dire = UPRIGHT;
}
else if(col==n-1){
dire = LEFTDOWN;
}
}
break;
case UPRIGHT:
row--;
col++; //移动到上一行,右一列
if(col>=n)//超过边界
{
row++;
col--; //后退
dire = DOWN;
continue; //跳过该次循环
}
else if(row<0){ //超过边界
row++;
col--; //后退
dire = RIGHT;
continue; //跳过该次循环
} else {
value++; //数值增加1
data[row][col] = value;//赋值
dire = UPRIGHT;
}
break;
case RIGHT:
col++; //移动到右一列
if(col>=n){
col--; //后退
dire = DOWN;
continue; //跳过该次循环
}
else {
value++; //数值增加1
data[row][col] = value;//赋值
if(row==0) {
dire = LEFTDOWN;
}
else if(row==n-1){
dire = UPRIGHT;
}
}
break;
case LEFTDOWN:
row++;
col--; //移动到下一行,左一列
if(row>=n) { //超过边界
row--;col++; //后退
dire = RIGHT;
continue; //跳过该次循环
}else if(col<0)//超过边界
{
row--;col++; //后退
dire = DOWN;
continue; //跳过该次循环
}
else {
value++; //数值增加1
data[row][col] = value;//赋值
dire = LEFTDOWN;
}
break;
}
}
//输出数组中的元素
for(int i = 0;i < data.length;i++){
for(int j = 0;j < data[i].length;j++){
if(data[i][j] < 10){//右对齐
System.out.print(' ');
}
System.out.print(data[i][j]);
System.out.print(' ');
}
System.out.println();
}
}
风尘中国 2011-09-08
  • 打赏
  • 举报
回复
有规律等你上代码了,我是看不懂需求
[Quote=引用 4 楼 liuyuhua0066 的回复:]

这是个折线型的方阵,还是有规律的。
引用 3 楼 ioe_gaoyong 的回复:
没头没脑的问题,利用什么算法,为什么要用算法输出?

要输出结果,四个System.out.println()就能输出

Java code


System.out.println(“1 2 6 7”)
System.out.println(“3 5 8 13”)
[/Quote]
liuyuhua0066 2011-09-08
  • 打赏
  • 举报
回复
这是个折线型的方阵,还是有规律的。
[Quote=引用 3 楼 ioe_gaoyong 的回复:]
没头没脑的问题,利用什么算法,为什么要用算法输出?

要输出结果,四个System.out.println()就能输出

Java code


System.out.println(“1 2 6 7”)
System.out.println(“3 5 8 13”)
[/Quote]
风尘中国 2011-09-08
  • 打赏
  • 举报
回复
没头没脑的问题,利用什么算法,为什么要用算法输出?

要输出结果,四个System.out.println()就能输出

System.out.println(“1 2 6 7”)
System.out.println(“3 5 8 13”)
tiger002 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ioe_gaoyong 的回复:]
你什么意思,输入这些数字很容易,你是想干什么?
[/Quote]
利用算法输出矩阵:
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
风尘中国 2011-09-08
  • 打赏
  • 举报
回复
你什么意思,输入这些数字很容易,你是想干什么?

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧