Во-первых, позвольте мне сказать, что это не домашнее задание (я студент A-Level, это не то, что мы решаем задачи (это намного сложнее)), а скорее проблема, которую я Я пытаюсь выяснить, чтобы улучшить мою логику программирования.
Я подумал о сценарии, в котором есть массив случайных целых чисел, например, 10 целых чисел. Пользователь введет число, до которого он хочет посчитать, и алгоритм попытается определить, какие числа необходимы для получения этой суммы. Например, если бы я хотел сделать сумму 44 из этого массива целых чисел:
myIntegers = array(1, 5, 9, 3, 7, 12, 36, 22, 19, 63);
Результат будет:
36 + 3 + 5 = 44
Или что-то вдоль этих линий. Надеюсь, я ясно выразился. В качестве дополнительного бонуса я хотел бы, чтобы алгоритм выбирал как можно меньше чисел для получения требуемой суммы или выдавал ошибку, если сумма не может быть составлена с предоставленными числами.
Я думал об использовании рекурсии и переборе массива, добавлении чисел снова и снова, пока сумма не будет достигнута или не будет пройдена. Но что я не могу понять, так это то, что делать, если алгоритм выходит за пределы суммы и должен быть избирательным в отношении того, какие числа выбирать из массива.
Я не ищу полный код или полный алгоритм, мне просто нужно ваше мнение о том, как мне поступить, и, возможно, поделиться несколькими советами или чем-то еще. Я, вероятно, начну работать над этим сегодня вечером. :П
Как я уже сказал, не домашнее задание. Просто я хочу сделать что-то более продвинутое.
Спасибо за любую помощь, которую вы можете предложить. :)