1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=210; char g[N][N]; int main() { string s; cin>>s; int n=s.size(); int row=1; for(int i=1;i<=n/i;i++) //计算行的最大值 { if(n%i==0) { row=i; } } int col=n/row; //计算列的最小值 s=" "+s; int r=1,c=1; for(int i=1;i<=s.size();i++) { g[r][c++]=s[i]; //放一个就增加一列 if(c==col+1) //如果出界就到第一列 { r++; c=1; } } for(int j=1;j<=col;j++) //先枚举列 { for(int i=1;i<=row;i++) //枚举行 { cout<<g[i][j]; } } return 0; }
- 1
Information
- ID
- 1250
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 29
- Accepted
- 10
- Uploaded By