从1-100之间找到所有相加为100的三个数字的组合

发布时间 2023-03-28 15:48:15作者: 芝麻小仙女
function findAllThreeNumbers(sum, count, max) {
  if (count === 0) {
    return sum === 100 ? [[]] : [];
  }
  const results = [];
  for (let i = Math.min(max, 100 - sum - count + 1); i >= 1; i--) {
    const subResults = findAllThreeNumbers(sum + i, count - 1, i - 1);
    for (const subResult of subResults) {
      results.push([i, ...subResult]);
    }
  }
  return results;
}

const results = findAllThreeNumbers(0, 3, 100);
if (results.length > 0) {
  console.log(`Found ${results.length} combinations of three numbers that add up to 100:`);
  for (const result of results) {
    console.log(result);
  }
} else {
  console.log("No three numbers found that add up to 100.");
}