【1031 20 图形打印】 Hello World for U
传送门
题意
给定一个字符串,将其呈现 \(U\) 形输出,左边为\(n_{1}\),底部为 \(n_{2}\),右边为 \(n_{3}\),必须满足 \(n_{2}>=n_{1}\),\(n_{1}\times 2+ n_{2}-2=len\)
数据范围
\(|S|\geq 5\)
题解
- \(\frac{size + 2} / 3\) 即两边的字符数
- 最后一行的所有字符单独输出即可
Code
#include <bits/stdc++.h>
using namespace std;
int main() {
string str; cin >> str;
int n1 = (str.size() + 2) / 3;
int n2 = str.size() - n1 * 2;
int space = n2;
for (int i = 0, j = str.size() - 1; i < n1 - 1; i++, j--) {
cout << str[i];
for (int k = 0; k < space; k++) cout << ' ';
cout << str[j] << endl;
}
cout << str.substr(n1 - 1, n2 + 2);
}

浙公网安备 33010602011771号