我想将数字分成不同的数字(例如123456-> 123,456或12,3456或123,45,6 ...等)。它们也必须遵循相同的顺序。因此,我正在考虑的一种方法是将数字的每个数字首先放入数组。然后,我将遍历数组并找到它们的每个组合。但是我认为这种方法将需要很长的时间才能找到所有可能的组合,尤其是如果可以将数字分割两次以上的话。这样做会有更有效的方法吗?
答案 0 :(得分:1)
这样做会有更有效的方法吗?
否。
将有2 n-1 个组合,例如对于6位数字,2 5 = 32个组合。
这样想:数字之间的每个“空格”都可以分隔或不分隔,是/否,1/0,即“位”,因此您可以使用5位数字确定拆分组合: / p>
1 2 3 4 5 6
^ ^ ^ ^ ^
0 0 0 0 0 -> 123456
0 0 0 0 1 -> 12345,6
0 0 0 1 0 -> 1234,56
. . . .
1 1 1 1 0 -> 1,2,3,4,56
1 1 1 1 1 -> 1,2,3,4,5,6