var a = [2,3,5,6,7,5]
var m = 10
var i = Array(m).fill().map(() => [])
for (var q=0; q<a.length; ++q) {
i[a[q] % m].push(q)
}
for (var q=0; q+q<=m; ++q) {
if (i[q].length && i[m-q].length) {
if (m-q !== q) {
console.log(`${q}+${m-q}: One of [${i[q]}] and one of [${i[m-q]}]`)
} else if (i[q].length >= 2) {
console.log(`${q}+${q}: Any two of [${i[q]}]`)
}
}
}
这里。如果您只需要方式的数量,那么您可以存储数量而不是索引。