PTA,L1-039 古风排版,含测试点

PTA古风排版测试点及代码

五个测试点:

测试点0:即给出的测试样例

测试点1:长度恰好整除行数。

测试点2:不满一列。

测试点3:最小规模数据。

测试点4:最大规模随机数据。

代码如下:

#include <iostream>
#include <string>

using namespace std;
int main ()
{
    int n;cin>>n;
    string s;
    getchar();//多余的回车处理
    getline(cin,s);
    int a=s.size();
    //总共n行,每列第一个字符的序号为0,n,2n...然后从右至左输出即可。
    for(int i=0;i<n;i++){//选择第i行的输出
        for (int k=a/n;k>=0;k--){//k表示a总共可以输出多少列。
            if(n*k==a){k=k-1;}  //即a被n整除,恰好可以输出k列,如果k不减1则会多输出一列空格
                                //(这列是输出最后多余的几位,当没有多余的字符时则依据下面的逻辑输出空格了)
            if(k*n+i>=a&&k==a/n) {  //k*n+i代表第i行第k列的字符,当这个字符超出输入字符串s的大小,则以空格填充。
                cout<<" ";continue;
            }
            cout<<s[k*n+i];
            if(k==0) cout<<endl;//从左至右输出,0即一行的最后一位,换行。
        }
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值