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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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.");
}

  

 

或:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
function findThreeNumbers(n, nums) {
  if (n == 0 && nums.reduce((sum, num) => sum + num, 0) == 100) {
    result.push(nums);
  } else if (n > 0) {
    for (let i = nums.length == 0 ? 1 : nums[nums.length-1]+1; i <= 100-n+1; i++) {
      findThreeNumbers(n-1, nums.concat([i]));
    }
  }
}
 
let result = [];
findThreeNumbers(3, []);
console.log(result);

  

posted @   芝麻小仙女  阅读(367)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-03-28 当你的layui表格要做全选+删除功能【兼容ie8】
点击右上角即可分享
微信分享提示