数字问题

时间:2010-03-20 10:29:32

标签: numbers

我得到一个数字N,我必须从数组V中添加一些数字,以便它们相等。 V由3的所有幂组成:

    N = 17
    S = 0
V = 1 3 9 27 81 ..

我应该在V到N和S之间添加数字以使它们相等。以上示例的解决方案是: 17 + 1 + 9 = 27,27,1和9取自V,V中的数字只能取一次,而当它从V中取出时。

我尝试对V进行排序,然后将V中的最大数字添加到S,直到S达到N,但是在某些测试时它会失败:

N = 7
S = 0
V = 1 3 9 27
So the solution will be:
7 + 3 = 9 + 1

在这样的例子中,我需要为N和S添加数字,并且还选择它们以使它们变得相等。 有什么想法解决这个问题?感谢。

1 个答案:

答案 0 :(得分:2)

在基数3中写入N:17 = 2 * 1 + 2 * 3 + 1 * 9
用系数2求出3的第一次幂,在这种情况下为1.
加上3:17 + 1的力量 重复,直到所有系数都为0或1。

17 = 2 * 1 + 2 * 3 + 1 * 9
17 + 1 = 2 * 9
17 + 1 + 9 = 27

7 = 1 * 1 + 2 * 3
7 + 3 = 1 * 1 + 1 * 9