Задача: найти все числа из цифр [1, 2, 3], у которых сумма цифр равна 3.
Если сумма уже больше 3 — дальше можно не проверять! Это называется отсечение.
АЛГОРИТМ НайдиЧисла(текущее, осталось_до_суммы)
// Отсечение: сумма превысила цель
ЕСЛИ осталось_до_суммы < 0 ТО
ВЫЙТИ ИЗ АЛГОРИТМА // дальше искать бессмысленно
КОНЕЦ ЕСЛИ
// Базовый случай: сумма достигнута!
ЕСЛИ осталось_до_суммы = 0 ТО
ВЫВЕСТИ текущее // выводим решение
ВЫЙТИ ИЗ АЛГОРИТМА
КОНЕЦ ЕСЛИ
// Перебираем цифры
ДЛЯ КАЖДОЙ цифры ИЗ [1, 2, 3] ВЫПОЛНЯТЬ
новое ← текущее + цифра
НайдиЧисла(новое, осталось_до_суммы - цифра)
КОНЕЦ ЦИКЛА
КОНЕЦ АЛГОРИТМА
// Запуск: ищем числа с суммой цифр = 3
НайдиЧисла("", 3)
Результат: 111, 12, 21, 3
Комбинация «13» не выводится, потому что 1+3=4 > 3 (отсечение!)
Зачем отсечение? Экономит время! Не проверяем заведомо неверные варианты.