#include #include using namespace std;

int main() { int n; string s; cin >> n >> s;

int len = s.size();
int row = (len + n - 1) / n; // 计算行数,向上取整
int col = n; // 列数固定为n

for (int j = col - 1; j >= 0; j--) { // 从右往左遍历列
    for (int i = 0; i < row; i++) { // 从上往下遍历行
        int idx = i * col + j; // 计算当前字符在原字符串中的下标
        if (idx < len) cout << s[idx]; // 如果下标小于字符串长度,输出该字符
        else cout << ' '; // 否则输出空格
    }
    cout << endl; // 每一列输出完毕后换行
}

return 0;
用c++写出这道题:题目描述现代人写字是从左往右一行一行书写而古代人写字是从右往左一列一列书写的现请你编写一段程序将一段文字按照古代人书写排版输出。输入格式第一行输入一个正整数 n1≤n≤100代表古代人书写每一列的字符数。第二行给出长度不超过 500 的非空字符串以回车结束。输出格式按照古代人的书写排版输出最终的字符串每列 n 个字符。注意:最后一列可能不足 n 个。

原文地址: https://www.cveoy.top/t/topic/hsDY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录