//传送门:https://www.patest.cn/contests/gplt/L1-039
#include <queue>
#include <functional>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <string>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <assert.h>
using namespace std;
/*题意:
按照要求的顺序排列字符串,
需要注意的是末尾不足用空格补全。
*/
#define N 1005
#define M 105
char mp[M][N];
int main()
{
int n;
string s;
scanf("%d",&n);
cin.get();
getline(cin,s);
int len = s.length();
int a = len / n; // 列数
int b = len % n; // 最后一列有几个字符
if(b) a++; // 如果有余数,即最后一列不满,列数+1
int cot = 0;
for(int i=a-1;i>=0&&cot!=len;i--){
for(int j=0;j<n && cot!=len;j++){
mp[j][i] = s[cot++];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<a;j++){
if(mp[i][j]==0) printf(" "); //末尾用 空格 补全
else printf("%c",mp[i][j]);
}
puts("");
}
return 0;
}
PAT-练习集-L1-039. 古风排版
最新推荐文章于 2023-12-13 16:31:43 发布