[英]read all elements of martix diagonally from upper left to lower right
我有一個Java代碼,它從右上到左下讀取對角線值,但是我想讓代碼從左上到右下讀取值。
int [][]mat = { {1,2,3},
{4,5,6},
{7,8,9},
};
int N=3;
for (int s=0; s<N; s++) {
for (int i=s; i>-1; i--) {
System.out.print(mat[i][s-i] + " ");
}
System.out.println();
}
for (int s=1; s<N; s++) {
for (int i=N-1; i>=s; i--) {
System.out.print(mat[i][s+N-1-i] + " ");
}
System.out.println();
}
以上代碼的輸出是
1 4 2 7 5 3 8 6 9
我想要序列像
3 2 6 1 5 9 4 8 7
int [][]mat = { {1,2,3},
{4,5,6},
{7,8,9},
};
int N=3;
for (int s=N-1; s>-N; --s) {
int iMin = s>0 ? s : 0;
int iMax = s>0 ? N : N+s;
for (int i=iMin; i<iMax; ++i) {
System.out.print(mat[i-s][i] + " ");
}
}
System.out.println();
產量
3 2 6 1 5 9 4 8 7
我已修改您的代碼以實現所需的輸出。
for (int s = N - 1; s > -1; s--) {
for (int i = s; i < N; i++) {
System.out.print(mat[i - s][i] + " ");
}
System.out.println();
}
for (int s = 1; s < N; s++) {
for (int i = s; i < N; i++) {
System.out.print(mat[i][i - s] + " ");
}
System.out.println();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.