简单题。
#include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<cstdio> #include<map> #include<queue> #include<vector> using namespace std; char s[100]; int n1,n2,n3; char ans[100][100]; int main() { scanf("%s",s); int len=strlen(s); for(int i=1;i<=len;i++) { if(i<=len+2-i-i){ n1=i; n3=i; n2=len+2-n1-n3; } } for(int i=1;i<=n1;i++) for(int j=1;j<=n2;j++) ans[i][j]=' '; int tot=0; for(int i=1;i<=n1;i++) ans[i][1]=s[tot++]; tot--; for(int i=1;i<=n2;i++) ans[n1][i]=s[tot++]; tot--; for(int i=n1;i>=1;i--) ans[i][n2]=s[tot++]; for(int i=1;i<=n1;i++){ for(int j=1;j<=n2;j++) printf("%c",ans[i][j]); printf(" "); } return 0; }