Cho mảng 2D n*n và nhiệm vụ là tìm sự sắp xếp anti-spiral của ma trận cho trước.
Input : arr[4][4]={1,2,3,4,
5,6,7,8,
9,10,11,12
13,14,15,16}
Output : 1 6 11 16 4 7 10 13
Thuật toán
START Step 1 -> khai báo biến khởi đầu r=4, c=4, i and j Step 2 -> khởi tạo mảng mat[r][c] với các phần tử Step 3 -> Vòng lặp For i=0 and i<r and i++ Print mat[i][j] Step 4 -> print \n Step 5 -> Vòng lặp For i=0 and i<r and i++ Print mat[i][4-1-i] End STOP
Ví dụ
#include<iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int R=4,C=4,i,j;
int mat[R][C] = { {1,2,3, 4}, {5,6,7,8},{9,10,11,12},{13,14,15,16}};
for(i=0;i<R;i++) {
cout<<mat[i][i]<<" ";
}
cout<<"\n";
for(i=0;i<R;i++) {
cout<<mat[i][4-1-i]<<" ";
}
}Kết quả
Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra đầu ra sau
1 6 11 16 4 7 10 13