先从左往右竖着存到数组中,再从右往左输出
注意补齐最后的空格
#include<cstdio>
#include<iostream>
#include <algorithm>
#include<cstring>
#include<sstream>
#include <cmath>
#include <set>
#include<map>
#include <vector>
#define ll long long
using namespace std;
const int N = 1e4+5;
char a[105][1005];
int main()
{
int n,x=0,y=0;
string str;
cin>>n;
getchar();
getline(cin,str);
for(int i = 0;i < str.size();i++)
{
a[x][y] = str[i];
x++;
if(x==n)
{
x=0;
y++;
}
}
for(int i = x;i < n;i++)
a[i][y] = ' ';
int c = ceil(str.size()/(n*1.0));
//printf("c=%d\n",c);
for(int i = 0;i<n;i++)
{
{
for(int j = c-1;j >=0;j--)
cout<<a[i][j];
}
puts("");
}
return 0;
}