|
|
|
@ -10,22 +10,23 @@ aebfcgdh
|
|
|
|
|
思考:
|
|
|
|
|
行数:n, 列数:m 需要满足 m>=n
|
|
|
|
|
(1) 1行, m=length(abcdefgh)=8 n=1 满足m>=n
|
|
|
|
|
(2) 2行, m=length(abcdefgh)/2=8/2=4 n=2 满足m>=n
|
|
|
|
|
(3) 3行, 8不能被3整除,跳过
|
|
|
|
|
(4) 4行, m=8/4=2, n=4 m<n break
|
|
|
|
|
(2) 2行, m=8/2=4 n=2 满足m>=n
|
|
|
|
|
(3) 3行, 8不能被3整除,跳过,尝试继续增大行数试试
|
|
|
|
|
(4) 4行, m=8/4=2, n=4 m<n 不满足条件了,break
|
|
|
|
|
*/
|
|
|
|
|
const int N = 210;
|
|
|
|
|
char a[N][N];
|
|
|
|
|
char a[N][N]; // 开一个二维数组用来模拟
|
|
|
|
|
int n; // 最后是几行
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
string s;
|
|
|
|
|
cin >> s; // 生成一个n行m列的矩阵
|
|
|
|
|
// 1、整明白到底是几行几列
|
|
|
|
|
|
|
|
|
|
// 1、几行几列是答案?
|
|
|
|
|
int len = s.size();
|
|
|
|
|
int n = 0; // 最后是几行
|
|
|
|
|
for (int i = 1;; i++) {
|
|
|
|
|
if (len % i == 0 && len / i >= i) n = i;
|
|
|
|
|
if (len / i < i) break;
|
|
|
|
|
if (len % i == 0 && len / i >= i) n = i; // 找到一个合理解,更新之
|
|
|
|
|
if (len / i < i) break; // 跑过了,就停下来
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int m = len / n; // 每行多少列
|
|
|
|
|