将整数拆分为定义的较小整数组的算法

问题描述 投票:0回答:1

我想编写一个函数,当给定一个整数时,可以将其划分为指定的较小整数组。

具体来说,传入的值需要拆分为一组值,其中这些值只能是 1、5 或 10。

另外还有一个条件,必须被分割成集合中至少3个值,但也必须是集合中值的最小数量。

举个例子。

如果传入10,应该输出 5, 1, 1, 1, 1, 1

如果传入6,则应该输出 1, 1, 1, 1, 1, 1,

如果传入15,应该输出 10, 1, 1, 1, 1, 1

如果传入16,应该输出 10, 5, 1

如果传入2,则应该输出 1, 1

如果传入27,应该输出 10, 10, 5, 1, 1

我知道这可能涉及使用模数,并且可能是一个多部分算法。只是不知道如何解决这个问题。

已经有很多分区问题,但我还没有看到任何足够相似的问题来提供帮助,因此不胜感激。

algorithm math game-development division
1个回答
0
投票

这是微不足道的。 3以下的数字不能随意分割。 5 为 1 1 1 1 1。6 为 1 1 1 1 1 1。10 为 5 1 1 1 1 1 1。11 为 5 5 1。15 为 5 5 5。20 为 10 5 5。所有其他整数均被拆分显而易见:尽可能多的 10 秒,如果可能的话 5 秒,然后 1 秒。

© www.soinside.com 2019 - 2024. All rights reserved.