Created
September 15, 2018 06:25
-
-
Save completejavascript/b265bbf83ab14883a7a2d52ac10f3008 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
int main() | |
{ | |
//freopen("input.txt","r",stdin); | |
int NUM_COL = 0; | |
while(true) | |
{ | |
// Nhập số lượng cột | |
cin >> NUM_COL; | |
if(NUM_COL == 0) break; | |
// Xâu đầu vào | |
char str[201]; | |
cin >> str; | |
// Tính độ dài của xâu | |
int length = 0; | |
while(str[length] != '\0') length++; | |
// Lưu ma trận | |
char Mat[101][21]; | |
// Lưu toạ độ hàng và cột đang đứng | |
int col = 0, row = 0; | |
// biến thiên chỉ số cột: = 1 nếu đi từ trái sang phải | |
// ngược lại = -1 | |
int delta = 1; | |
// Duyệt xâu để chuyển xâu thành ma trận | |
for(int i = 0; i < length; i++) | |
{ | |
// Ban đầu là đi từ trái sang phải => chỉ số cột tăng | |
Mat[row][col] = str[i]; | |
col += delta; | |
// Khi đi đến cuối thì quay về trái | |
if(col >= NUM_COL) | |
{ | |
Mat[row][col] = '\0'; | |
row++; | |
Mat[row][col] = '\0'; | |
delta = -1; | |
col += delta; | |
} | |
else if (col < 0) // Khi đi đến đầu thì quay sang bên phải | |
{ | |
row++; | |
delta = 1; | |
col += delta; | |
} | |
} | |
// Tìm ra kết quả | |
int count = 0; | |
for(int j = 0; j < NUM_COL; j++) | |
{ | |
for(int i = 0; i < row; i++) | |
str[count++] = Mat[i][j]; | |
} | |
str[count] = '\0'; | |
cout << str << endl; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment