Проблема с числами - PullRequest
       14

Проблема с числами

1 голос
/ 20 марта 2010

Мне дано число 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 Ответ

2 голосов
/ 20 марта 2010

Запишите N в базе 3: 17 = 2 * 1 + 2 * 3 + 1 * 9
Найти первую степень 3 с коэффициентом 2, в данном случае 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

...