Перебор и вывод всех возможных сочетаний - C (СИ)
Формулировка задачи:
Итак,здравствуйте.
Привела меня к вам интересная задачка.
Вводится слово,заранее не известно количество букв
необходимо вывести на экран все возможные сочетания,в задании написано для простоты не использовать повторяющиеся символы.
Пример
Вода
Вывод(вывод буду отделять знаком "_"):
В_о_д_а_во_вд_ва_ов_од_...._вод_ода_одав_даво
и т.д.
тоестьв данном случаешь от 1 до 4 символов в сочетании
все сделать необходимо с использованием простейших функций(но желательно без них для лучшего понимания)
Тоесть на примитивном уровне.
Не прошу писать программу,прошу лишь дать некий алгоритм с помощью которого возможно написать данный код.для меня главное разобраться.
Заранее благодарен
Решение задачи: «Перебор и вывод всех возможных сочетаний»
textual
Листинг программы
- int k = (int)a.size();
- for (int i=k-1; i>=0; --i)
- if (a[i] < n-k+i+1) {
- ++a[i];
- for (int j=i+1; j<k; ++j)
- a[j] = a[j-1]+1;
- return true;
- }
- return false;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д