用JAVA编写矩阵

1131211214171031516945678就是这个矩阵高手帮忙谢谢!!!有点问题题目这样谢谢大家!!!11211102131693141584567... 1 13 12 11
2 14 17 10
3 15 16 9
4 5 6 7 8
就是这个矩阵 高手帮忙 谢谢!!!
有点问题题目 这样 谢谢大家!!!
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
展开
 我来答
go1699
2008-03-05 · TA获得超过120个赞
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:120万
展开全部
public static void main(String[] args) throws Exception {
print(create(getNum()));
}

private static int getNum() {
Scanner scanner = new Scanner(System.in);
int n = 0;
do {
System.out.println("请输入要生成的阶数:");
String input = scanner.next();
if (isDigital(input)) {
n = Integer.parseInt(input);
if (n <= 0) {
System.out.println("阶数必须大于0");
}
}
} while (n == 0);
return n;
}

private static int[][] create(int n) {
int[][] num = new int[n][n];
int ax = 1, ay = 0, x = 0, y = 0;
for (int m = 1; m <= n * n; m++) {
num[x][y] = m;
int tmpx = x + ax;
int tmpy = y + ay;
if (tmpx >= n || tmpx < 0 || tmpy >= n || tmpy < 0 || num[tmpx][tmpy] != 0) {
if (ax == 0) {
ax = -ay;
ay = 0;
} else if (ay == 0) {
ay = ax;
ax = 0;
}
}
x += ax;
y += ay;
}

return num;
}

private static void print(int[][] num) {
int length = String.valueOf(num.length * num.length).length();
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num[i].length; j++) {
String tmp = String.valueOf(num[i][j]);
while (tmp.length() < length) {
tmp = " " + tmp;
}
System.out.print(tmp + " ");
}
System.out.println();
}
}

private static boolean isDigital(String input) {
if (input == null || input.length() == 0) return false;
for (int i = 0; i < input.length(); i++) {
char ch = input.charAt(i);
if (!Character.isDigit(ch)) {
System.out.println("输入的阶数必须为数字");
return false;
}
}
return true;
}

运行时输入要生成的阶数就可以了,比如生成问题上的矩阵输入4就可以了。
SteinBuff
2008-03-04
知道答主
回答量:18
采纳率:0%
帮助的人:16.4万
展开全部
这样定义就可以:int[][] array = {{1,13,12,11},{2,14,17,10},{3,15,16,9},{4,5,6,7,8}};
想要查看的话:
for(int i = 0; i < array.length; i ++) {
for(int j = 0; j < array[i].length; j ++) {
System.out.println(array[i][j]);
}
}
注:java 中的二维数组中每一维的长度是可以不同的,如例子中的,前三个长度为4,第四个长度则为5,这样是允许的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KamilR
2008-03-04 · TA获得超过193个赞
知道答主
回答量:83
采纳率:100%
帮助的人:85.3万
展开全部
int array[4][4] = { {1,13,12,11}, {2,13,17,10}, {3, 15, 16, 9}, {4, 5, 6, 7} }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
danily0921
2008-03-04
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
好象有错吧 第四行怎么五列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式