📜  披萨拼图

📅  最后修改于: 2022-05-13 01:57:25.576000             🧑  作者: Mango

披萨拼图

问题陈述:

在餐厅,可以订购 6 个、9 个和 20 个一盒的比萨。不能用这些盒子的任何组合购买的比萨最多是多少?

例如:

  • 对于这样的问题,存在两种类型的解决方案。
  • 它们包括数学和算法的。
  • 数学解决方案仅限于给定的框值,而算法解决方案可以应用于任何框值。

数学解决方案:



  • 6 和 9 的组合将为您提供 3 的所有倍数(3 个比萨饼除外)。

  • 如果一个数不是3的倍数,就用一盒20,计算剩余的值,检查它是否是3的倍数。例如:

  • 因此,可以购买 35 个披萨盒。
  • 但是不可能买28盒,因为用完一盒20只剩下8盒不是3的倍数了。
  • 同理,用完1盒20后,如果余数不能被3整除,再检查是否可以再用1盒20。
  • 例如:

  • 从给定的数字中反复减去 20,直到得到一个能被 3 整除的数字。
  • 这种方法总是有效,因为任何数除以 3 的余数都是 0、1 或 2。
  • 例如,15 可以被 3 整除,所以 15 除以 3 的余数为 0。
  • 现在,如果取任何一个不是 3 的倍数的数,将它反复加到 15,然后将加法结果除以 3。
  • 余数将作为输出序列作为 0, 1, 2 0, 1, 2 01, 2 或 0, 2, 1 0, 2, 1 0, 2, 1。
  • 从上面的方法来看,看起来可以购买任意数量的比萨饼>= 40,但是有 1 个大于 20 的数量不能通过 20、9 和 6 的任何组合来实现。
  • 最多使用 2 个 20 的盒子后,剩余的值必须能被 3 整除。 如上所示,数字 3 不能通过 20、9 和 6 的任何组合来实现。
  • 买不到的披萨数量最多= 20+ 20+ 3= 43。

算法:

  • 最小的盒子是 6。
  • 如果达到 6 个连续的数字,则只需再添加一盒 6 即可获得所有进一步的数字。
  • 例如:

  • 所以目标是找到那6个连续的数字。
  • 让我们进行组合以实现按递增顺序排列的多个比萨盒。
  • 在观察模式时,将从 44 到 49 取 6 个连续的数字。
  • 因此,在多一盒 6 的帮助下,可以实现大于 49 的任意数量的盒子。
  • 因此,不能通过 20、9 和 6 的任何组合获得的最大数量的框出现在 44 即 43 之前。这是必需的答案。