Bài toán
Điền ma trận n×n theo đường chéo (diagonal pattern): bắt đầu (0,0), đi chéo lên phải, xuống trái xen kẽ.
Ví dụ n=3
1 2 4 3 5 7 6 8 9
n=4:
1 2 4 7 3 5 8 11 6 9 12 14 10 13 15 16
Phương pháp
- Tạo ma trận tạm mat[n][n]
- Điền nửa trên (tam giác trên đường chéo chính): i từ 0→n-1, j=i→0, k=0→i
- Điền nửa dưới: k=1→n-1, j=n-1→k, i=k→n-1
- In ma trận mat
Mã nguồn C
#include <stdio.h>
void printdiagonal(int n) {
int mat[n][n], d=1;
// Nửa trên
for (int i=0; i=0; j--) {
mat[k][j] = d++;
k++;
}
}
// Nửa dưới
for (int k=1; k=k; j--) {
mat[i][j] = d++;
i++;
}
}
// In
for (int i=0; i
Kết quả n=3
1 2 4
3 5 7
6 8 9