На самом деле можно решить проблему суммы подмножеств с (большим количеством) вложенных циклов. Это, вероятно, будет упоминаться как «нерекурсивный грубый метод наивного подхода», или что-то в этом роде.
Вы, вероятно, никогда этого не увидите, потому что это очень, очень, ... очень неуклюжий способ решения проблемы.
Действительно, вам понадобится столько вложенных циклов, сколько у вас есть элементов в вашем входном наборе, что будет означать написание отдельной программы для каждого случая (1 элемент в вашем начальном наборе, 2 элемента в вашем начальном наборе и т. Д. И т. Д.).
Или, в конце концов, написание программы, которая принимает заданный размер N
в качестве входных данных и пишет программу с вложенными циклами N
. Но результат, в любом случае, будет настолько далеко от «хорошей практики кодирования», насколько это возможно.
Рекурсивный подход делает именно это (он строго эквивалентен множеству вложенных циклов, каждый рекурсивный вызов отправляет вас в «новый» цикл), но гораздо проще и элегантнее (несмотря на полное перечисление подмножеств установить, что очень и очень дорого). Более простой код легче проверять, легче редактировать, легче тестировать, легче отлаживать ... (и так далее ... передовой опыт часто здесь по причине).