【发布时间】:2019-04-30 06:46:30
【问题描述】:
任何人都可以找到十进制二进制的解决方案(十进制数字包含 0 和 1,如 100 111 101 等,而 12、13 和 5551 等数字不是十进制)
这里使用的数字是十进制的,只有二进制格式。
输出不是二进制格式。输出中所有数字的总和应与输入相同。比如下面的 Input 是 Decimal 4 输出是 decimals 1,1,1 和 1。当把所有的输出相加就可以得到输入。
如果输入是 11,那是一个十进制,所以我们不想转换它。所以输出将与输入 11 相同。
对于输入 4
输出应该是 1 1 1 1
其他场景如下
IP: 4
OP: 1 1 1 1
IP: 21
OP: 10 11
IP: 11
OP: 11
IP: 100
OP: 100
IP: 99
OP: 11 11 11 11 11 11 11 11 11
我试过了,无法解决。
编辑:这不是 Finding shortest combinations in array/sequence that equals sum 的重复我的问题不是子集问题,并且与该问题完全不同
【问题讨论】:
-
这里的逻辑是什么?您能分享一下您的尝试吗?
-
请分享您的代码sn-p。
-
为什么是
99->11 11 11 11 11 11 11 11 11?请解释 -
似乎有各种不同的“十进制”定义。你的是什么?
-
考虑到最小拆分计数,问题可以简化为 Min-Coin_Change-Problem ("algorithmist.com/index.php/Min-Coin_Change")。见 stackoverflow.com/questions/9964289/… 与 "coins" [1,10,11,100,101,110,111,1000,1001, 1010,1011,1100,...]" 该方法需要建立“硬币”列表,使其达到价值并将其输入算法。
标签: java