L1-039 古风排版 (20 分)
题意
思路
- 得出行数列数
- 从右上开始往下
坑点
- 注意输出格式,末尾空格
2.行列数
代码
#include<bits/stdc++.h>
using namespace std;
char ans[105][1005];
int main()
{
int n,cnt=0;
scanf("%d",&n);//行数
getchar();//读入空格
string s;
getline(cin,s);//读入字符
int len=s.length(),sum=0;
int l=(len+n-1)/n;//求出行数
for(int j=l-1;j>=0;j--)//行数
{
for(int i=0;i<n;i++)//列数
{
if(sum<len)//sul<字符长度
{
ans[i][j]=s[sum];//对应位置等于s[sum]
}else{//sul>len
ans[i][j]=' ';//空格
}
sum++;
}
}
for(int i=0;i<n;i++)//hang
{
// reverse(ans[i],ans[i]+cnt);
for(int j=0;j<l;j++)//列
{
printf("%c",ans[i][j]);//输出新字符
}
if(i!=n-1)
{
printf("\n");//换行
}
}
return 0;
}