PTA练习 R7-4 h0034. 平方矩阵 II

输入整数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' : ' ');
        }
    }
}