输入整数N,输出一个N阶的二维数组。
数组的形式参照样例。
输入格式:
输入包含多行,每行包含一个整数N。0≤N≤100
当输入行为N=0时,表示输入结束,且该行无需作任何处理。
输出格式:
对于每个输入整数N,输出一个满足要求的N阶二维数组。
每个数组占N行,每行包含N个用空格隔开的整数。
每个数组输出完毕后,输出一个空行。
输入样例:
1
2
3
4
5
0
输出样例:
1
1 2
2 1
1 2 3
2 1 2
3 2 1
1 2 3 4
2 1 2 3
3 2 1 2
4 3 2 1
1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
注意:
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
正常知道的三种方法都试过了,均会超时……
试试这样:
#include <stdio.h>
#include <stdlib.h>
int arr[101][101];
void Init()
{
int i, j;
for (i = 0; i <= 100; i++)
for (j = 0; j <= 100; j++)
arr[i][j] = abs(i - j) + 1;
}
int main()
{
int i, j, n;
Init();
while (scanf("%d", &n) == 1 && n != 0) {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf("%3d%c", arr[i][j], j == n - 1 ? '\n' : ' ');
}
}
}