题目分析
给我们一个字符串,让我们按照指定的格式打印出来。这里沿用题目中的参数n1
、 n2
、n3
。题中给出了这三者之间的数量关系和约束关系,只要能确定其中一个,就能够求出另外两个。
解题思路
根据上述分析,解决这道题的关键就在于如何确定上述参数的值。我采用的方法是找规律,而且这个规律很好找。当字符串的长度为5、6、7、8、9、10时的情况分析一下,就能够得出n1
的取值的规律,这一步留给读者自己去操作。
AC代码
#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
#include <cmath>
using namespace std;
int n1, n2, n3;
int main() {
string s;
cin >> s;
int N = s.size();
n1 = N / 3 + min(1, N % 3);
n3 = N + 2 - 2 * n1;
for (int i = 0; i < n1 - 1; ++i) {
printf("%c", s[i]);
for (int i = 0; i < n3 - 2; ++i) {
printf(" ");
}
printf("%c\n", s[N - 1 - i]);
}
for (int i = 0; i < n3; ++i) {
printf("%c", s[n1 - 1 + i]);
}
return 0;
}