Количество способов сложения суммы S с N числами

Скажем, S = 5 и N = 3, решения будут выглядеть так - <0,0,5> <0,1,4> <0,2,3> <0,3,2> <5,0,0> <2,3,0> <3, 2,0> <1,2,2> и т. Д.

В общем случае для решения проблемы можно использовать N вложенных циклов. Запустите N вложенный цикл, внутри них проверьте, суммируются ли переменные цикла с S.

Если мы не знаем N заранее, мы можем использовать рекурсивное решение. На каждом уровне запустите цикл, начиная с 0 до N, а затем снова вызовите саму функцию. Когда мы достигнем глубины N, посмотрим, дают ли полученные числа в сумме S.

Любое другое решение динамического программирования?

16
задан Hari Sundararajan 3 January 2011 в 21:14
поделиться