当前位置:  开发笔记 > 编程语言 > 正文

给定一个数组,找到小于c的n个数字的组合

如何解决《给定一个数组,找到小于c的n个数字的组合》经验,为你挑选了0个好方法。

这是一个艰难的,至少我的最低技能.

基本上,用户将价格列表输入到阵列中,然后输入他想要购买的所需数量的项目,最后是不超过的最大成本.

我需要检查所需数量的项目的组合数量是否小于或等于给定的成本.

如果问题是组合中固定数量的项目,比如3,只需要三个循环选择每个价格并将它们添加到测试中就会容易得多.

我感到难过的地方是要求用户输入任意数量的项目,直到数组中的项目数量.

这是我最初决定的,然后才意识到用户可以指定任意数字的组合,而不仅仅是三个.它是在这里的类似主题的帮助下创建的,但同样只有当用户指定他想要每个组合3个项目时它才有效.否则它不起作用.

// test if any combinations of items can be made
  for (one = 0; one < (count-2); one++) // count -2 to account for the two other variables
  {
    for (two = one + 1; two < (count-1); two++) // count -1 to account for the last variable
    {
      for (three = two + 1; three < count; three++)
      {
        total = itemCosts[one] + itemCosts[two] + itemCosts[three];
        if (total <= funds)
        {
          // DEBUG printf("\nMatch found! %d + %d + %d, total: %d.", itemCosts[one], itemCosts[two], itemCosts[three], total);
          combos++;
        }
      }
    }
  }

据我所知,根据用户所需的每个组合的项目数量,没有简单的方法可以使其灵活适应.

我真的很感激任何帮助.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有