题目要求
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输出格式
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输入样例
4
This is a test case
输出样例
asa T
st ih
e tsi
ce s
解题思路
源码
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int n;
cin >> n;
string s;
getchar();
getline(cin,s);
int col = (s.length() - 1) / n+1;
char map[n][col];
for (int i = 0;i < n;i++) {
for (int j = 0;j < col;j++) {
map[i][j] = ' ';
}
}
int order = 0;
for (int j = col - 1;j >= 0;j--) {
for (int i = 0;i < n;i++) {
if (order < s.length()) {
map[i][j] = s[order++];
}
}
}
for (int i = 0;i < n;i++) {
for (int j = 0;j < col;j++) {
cout << map[i][j];
}
cout << endl;
}
return 0;
}