实现1到8的八位数不重复组合,并且组合后的每个整数中没有重复的数字,例如12345678,87654321,32145678,共有40320种
let arr = [1, 2, 3, 4, 5, 6, 7, 8];
let num = new Array();
for (let i = 0; i < 8; i++) {
for (let j = 0; j < 8; j++) {
if (arr[i] == arr[j]) continue;
for (let k = 0; k < 8; k++) {
if (arr[j] == arr[k] || arr[i] == arr[k]) continue;
for (let a = 0; a < 8; a++) {
if (arr[a] == arr[i] || arr[a] == arr[j] || arr[a] == arr[k]) continue;
for (let b = 0; b < 8; b++) {
if (arr[b] == arr[i] || arr[b] == arr[j] || arr[b] == arr[k] || arr[b] == arr[a]) continue;
for (let c = 0; c < 8; c++) {
if (arr[c] == arr[i] || arr[c] == arr[j] || arr[c] == arr[k] || arr[c] == arr[a] || arr[c] == arr[b]) continue;
for (let d = 0; d < 8; d++) {
if (arr[d] == arr[i] || arr[d] == arr[j] || arr[d] == arr[k] || arr[d] == arr[a] || arr[d] == arr[b] || arr[d] == arr[c]) continue;
for (let e = 0; e < 8; e++) {
if (arr[e] == arr[i] || arr[e] == arr[j] || arr[e] == arr[k] || arr[e] == arr[a] || arr[e] == arr[b] || arr[e] == arr[c] || arr[e] == arr[d]) continue;
let curnum = arr[i] * 10000000 + arr[j] * 1000000 + arr[k] * 100000 + arr[a] * 10000 + arr[b] * 1000 + arr[c] * 100 + arr[d] * 10 + arr[e];
num.push(curnum);
}
}
}
}
}
}
}
}