对称矩阵存储
标准输入输出
题目描述:
对于对称矩阵的存储,可以只存储下三角中的元素。对于给定的对称矩阵,要求进行压缩存储。
输入:
输入包括若干个测试用例,对于每一个测试用例,第一行为一个正整数n(1<=n<=100)表示方阵的维数,接下来为n阶方阵。每一测试用例最后一行为两个正整数i,j(1<=i,j<=n),表示需求元素在压缩存储的相对位置。
输出:
对每一个测试用例,用两行输出,第一行输出压缩存储结果,以一个空格隔开,第二行输出所求元素在压缩存储中的相对位置。
输入样例:
4
1 2 3 4
2 2 7 8
3 7 3 9
4 8 9 5
2 1
3
1 5 9
5 2 7
9 7 3
1 3
输出样例:
1 2 2 3 7 3 4 8 9 5
2
1 5 2 9 7 3
4
参考:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int[][] arr = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
arr[i][j] = sc.nextInt();
}
}
int x = sc.nextInt();
int y = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(arr[i][j] + " ");
}
}
int ans = 0;
if (y <= x) {
ans = x * (x - 1) / 2 + y;
} else {
ans = y * (y - 1) / 2 + x;
}
System.out.println("\n" + ans);
}
}
}