古风排版

L1-039 古风排版 (20 分)
 

中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。

输入格式:

输入在第一行给出一个正整数N(<),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。

输出格式:

按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。

输入样例:

4
This is a test case

输出样例:

asa T
st ih
e tsi
 ce s





 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 #include <algorithm>
 5 using namespace std;
 6 char a[1001][1001];
 7 int main(){
 8     int N;
 9     string s1;
10     cin >> N;
11     getchar();
12     getline(cin, s1);
13     int n;//用n记录行数 
14     if(s1.size() % N == 0){
15         n = s1.size() / N; 
16     }else{
17         n = s1.size() / N + 1;
18     }
19     int k = 0;
20     bool flag = false;
21     int i;
22     int j;
23     for(i = 0; i < n; i++){
24         for(j = 0; j < N; j++){
25             if(k == s1.size()){
26                 flag = true;
27                 break;
28             }
29             a[i][j] = s1[k++];
30         }
31         if(flag){
32             break;
33         }
34     }
35     for(int t = 0; t < n * N - k; t++){
36         a[i][j++] = ' '; 
37     }
38     for(int i = 0; i < N; i++){
39         for(int j = n - 1; j >= 0; j--){
40             cout << a[j][i];
41         }
42         cout << endl;
43     }
44     return 0;
45 }
 

猜你喜欢

转载自www.cnblogs.com/AGoodDay/p/10614358.html