Trong bài toán này, chúng ta được đưa ra một ma trận 2 chiều. Nhiệm vụ của chúng ta là in dạng ngoằn ngoèo của ma trận.
Hãy lấy một ví dụ để hiểu vấn đề
Input: 12 99 43 10 82 50 15 75 5 Output: 12 99 43 50 82 10 15 75 5
Để giải quyết vấn đề này, chúng ta sẽ in các phần tử của mảng theo cả hai hướng (LtoR và RtoL). Và thay đổi hướng bằng cách sử dụng biến cờ.
Ví dụ
#include <iostream> using namespace std; void printZigZagPattern(int row, int col, int a[][5]) { int evenRow = 0; int oddRow = 1; while (evenRow<ow) { for (int i=0;i<col;i++) { cout<<a[evenRow][i]<<" "; } evenRow = evenRow + 2; if(oddRow < row) { for (int i=col-1; i>=0; i--) cout<<a[oddRow][i] <<" "; } oddRow = oddRow + 2; } } int main() { int r = 3, c = 3; int mat[][5] = { {12,99,43}, {10,82,50}, {15,75,5} }; cout<<"Elements of the matrix in ZigZag manner :\n"; printZigZagPattern(r , c , mat); return 0; }
Đầu ra
Các phần tử của ma trận theo cách ZigZag -
12 99 43 50 82 10 15 75 5