#include <iostream> #include <cstdio> using namespace std; /** * Hello World for U -- 浙江大学 * 将长度为len字符串分为3段n1,n2,n3,其中n1和n3长度相同,且n1+n2+n3=len+2。 * 所以,n1=n2=(len+2)/3,n3=len+2-2*n1。 * 打印时,逐行打印即可。 * 除去最后一行,其余行先打印1个n1的字符,再打印n2-2个空格,最后打印n3的字符。 * 最后一行打印n2即可。 * @return */ int main() { string str; cin >> str; int len = str.length(); int n1 = (len + 2) / 3; int n2 = len + 2 - 2 * n1; int n3 = n1; /* * 打印字符 * 除去最后一行,所以循环n1-1次 */ for (int i = 0; i < n1 - 1; ++i) { //打印n1的字符 cout << str[i]; //打印n2-2个空格 for (int j = 0; j < n2 - 2; ++j) { cout << " "; } //打印n3的字符 cout << str[len - i - 1]; //换行 cout << endl; } /* * 打印最后一行 */ for (int k = 0; k < n2; ++k) { //打印n2的字符 cout << str[n1 - 1 + k]; } return 0; }