【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);
}
posted @ 2021-02-18 23:35  Hyx'  阅读(58)  评论(0)    收藏  举报