我想对以下元素进行循环:
[1,2,11,12,21,22,111,112,121,122,....,222222]
或者例如
[1,2,3,11,12,13,21,22,23,31,32,33,111,112,113,... 333333333]
我怎样才能用Java制作它?在我的特殊情况下,我使用 4 位数字(1、2、3、4),最后一个数字的长度可以是 1 到 10。
我设法用 Python 和 PHP 做到了。在第一种情况下,我使用列表而不是列表。我从 [[1],[2],] 开始,然后为列表的每个元素添加 1 和 2,所以我得到 [[1,1],[1,2],[2,1],[2 ,2]] 等等:
nchips = sum(chips)
traj = [[]]
last = [[]]
while len(last[0]) < nchips:
newlast = []
for tr in last:
for d in [1,2,3,4]:
newlast.append(tr + [d])
last = newlast
traj += last
当我在 PHP 中执行此操作时,我使用了以 3 为底的数字。但这是一个棘手且不优雅的解决方案。
for ($i=-1; $i<=$n; $i+=1) {
if ($i>-1) {
$n5 = base_convert($i,10,5);
$n5_str = strval($n5);
$tr = array();
$found = 0;
for ($j=0; $j<strlen($n5_str); $j+=1) {
$k = $n5_str[$j];
if ($k==0) {
$found = 1;
break;
}
array_push($tr,$k);
}
if ($found==1)
continue;
} else {
$tr = array();
}
}
用Java可以轻松完成吗?