算法建议

时间:2014-04-06 17:56:06

标签: algorithm

我正在寻找完成以下任务的最佳方法:

在1和9之间给出4个不可重复的数字 给出1到6之间的2个数字。

加上两个数字(1到6),检查是否有办法使用四个不可重复的数字(1到9)制作相同的数字,加上你甚至可能不必使用所有四个数字

实施例
您的四个不可重复(1到9)数字是:2,4,6和7 您在1和6之间的两个数字是:3和3

这两个数字的总和是3 + 3 = 6.

查看四个不可重复的(1到9)数字,你可以用两种不同的方式制作一个6: 2 + 4 = 6
6 = 6

所以,这个例子返回“是的,有一个可能的解决方案”。

如何以最有效,最干净的方式完成此任务,算法结合。

1 个答案:

答案 0 :(得分:0)

在这里输入代码因为这里的元素数量是4所以我们不应该担心效率。 只需循环0到15并将其用作位掩码,以检查可生成的有效结果。 这是python中的一个代码,可以为您提供想法。

a = [2,4,6,7]
for i in range(16):
    x = i
    ans = 0
    for j in range(4):
        if(x%2):
            ans += a[j]
        x /= 2
    print ans,
  
    

0 2 4 6 6 8 10 12 7 9 11 13 13 15 17 19