как найти сумму среди общего итога - PullRequest
0 голосов
/ 10 апреля 2019

кто-то должен моей компании 16 разных счетов на общую сумму 29048,88 $. они заплатили мне эту сумму в 2 разных перевода 1 из 19993,92 $ 2 из 9054,96 $

Как найти счета, оплаченные при первом и втором переводе? Если у вас есть идея, чтобы решить это просто с помощью простого математического уравнения или с помощью JavaScript (цикл может быть) Спасибо

1 Ответ

0 голосов
/ 11 апреля 2019

Возможный дубликат этого вопроса ?

Я думаю этот ответ решает вашу проблему.

Я копирую здесь реализацию решения на python,Но оригинальный ответ предлагает гораздо больше вариантов.Сложность алгоритма растет довольно быстро (экспоненциально), поэтому будьте осторожны, прежде чем использовать его для больших проблем, чем N = 16.

Просто введите все свои счета в список и один из ваших платежей в качестве второго параметра.Вы получите все комбинации счетов-фактур, которые дают данный платеж, а другой платеж - просто недостающие элементы списка.Может быть более одного решения.

def subset_sum(numbers, target, partial=[]):
    s = sum(partial)

    # check if the partial sum is equals to target
    if s == target: 
        print("sum(%s)=%s" % (partial, target))
    if s >= target:
        return  # if we reach the number why bother to continue

    for i in range(len(numbers)):
        n = numbers[i]
        remaining = numbers[i+1:]
        subset_sum(remaining, target, partial + [n]) 

subset_sum([31,19,80,48,52,70,10,13,12,54,23,45,34,26,51,23,100],193)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...