题解 | #桶装康帅傅串#

桶装康帅傅串

https://ac.nowcoder.com/acm/problem/21488

我们可以把这道题近似看成在一个二维数组中对指定地方进行赋值。 对于这一道题最重要的就是我们要确定边界条件 alt (图画的比较丑,请忽略) 对行数(a,c)

a = (len + 2) / 3

在这里我们不用担心行数会大于列数b的,因为/得到的结果是向下取整的。 对于列数

 b = len + 2 - 2 * a

alt 先输出蓝色部分

for (int i = 0; i < a - 1; i++) {
	cout << s[i];
	for (int j = 0; j < b - 2; j++) {
		cout << " ";
	}
	cout << s[len - 1 - i] << endl;
}

再输出绿色部分

for (int i = a - 1; i < a + b - 1; i++) {
	cout << s[i];
}

下面是全部代码

#include<bits/stdc++.h>
using namespace std;
int T;
string s;
int main() {
	cin >> T;
	while (T--)
	{
		cin >> s;
		int len = s.length();
		int a = (len + 2) / 3, b = len + 2 - 2 * a;
		for (int i = 0; i < a - 1; i++) {
			cout << s[i];
			for (int j = 0; j < b - 2; j++) {
				cout << " ";
			}
			cout << s[len - 1 - i] << endl;
		}
		for (int i = a - 1; i < a + b - 1; i++) {
			cout << s[i];
		}
		cout << endl << endl;
	}
	return 0;
}
全部评论
nb
点赞 回复 分享
发布于 2024-07-27 13:33 湖南
牛逼
点赞 回复 分享
发布于 2024-07-26 18:54 湖南

相关推荐

完美的潜伏者许愿简历通过:我上表jd,请求封我做后端大将军的事,北京有消息了:竟然不许!!! 他们一定是看我没有实习,这才故意驳回我的请求!
点赞 评论 收藏
分享
Volatiled:对方撤回了啥呀?
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务