Форумы-->Форум для внеигровых тем--> 1|2|3|4
Автор | задача в с++ |
Задача 5: Пользователь вводит число А не более 4-х разрядов. Вывести всевозможные комбинации из цифр этого числа длиной числа А. Цифры могут повторяться. Без массива! | вот варианты считая само число 123
111 211 311
112 211 312
113 213 313
121 221 321
122 222 322
123 223 323
131 231 331
132 232 332
133 233 333
для Balmung:
Увлекаюсь программированием. Pascal, Delphi, VBA, Flash+AS2.0. Делитесь своими идеями и предложениями)
чорд, не пересекаемся( | для Balmung:
Цифры могут повторяться. | для Triode:
Задача, как мне кажется, бредовая немного. Предположим я введу 4-значное число (1234) и на выходе я получу 256 чисел и зачем это? =) | для FM_:
сказано же Пользователь вводит число А не более 4-х разрядов сиречь 3х значное число | для Triode:
Не более означает меньше или равно 4. | на выходе я получу 256 чисел и зачем это?
ну если брать в общем то ключевые слова звучат как комбинаторика, перестановки, сочетания... | для e_t_:
Собсно, что и остаётся, вроде как. Если нельзя через массив, то остаётся перебор всевозможных комбинаций. | для FM_:
я отвечал на вопрос "зачем это", а не как это | для e_t_:
Да-да =) Что-то я сплю, видимо приближение сессии так влияет =) Извини. | Можно решить по тупому. Перебрать в цикле все числа от 1000 до 9999. Для каждого числа проверить, есть ли в нем все цифры из числа, которое ввел пользователь. Если есть, то вывести число на экран. Это решение для случая, если пользователь ввел 4-х значное число. Для 3-х значного делаем по аналогии с числами от 100 до 999. Для двузначного - вывести это число и это число в обратном порядке. Для однозначного просто вывести число. Хотя вряд ли это то решение, которое ожидает увидеть преподаватель. | Можно решить по тупому. Перебрать в цикле все числа от 1000 до 9999. Для каждого числа проверить, есть ли в нем все цифры из числа, которое ввел пользователь. Если есть, то вывести число на экран. Это решение для случая, если пользователь ввел 4-х значное число. Для 3-х значного делаем по аналогии с числами от 100 до 999. Для двузначного - вывести это число и это число в обратном порядке. Для однозначного просто вывести число. Хотя вряд ли это то решение, которое ожидает увидеть преподаватель.
Добавь сюда еще проверку, есть ли в исходном числе 0, и если есть, то включаем в проверку числа от 1 до 999, которые выводим в формате 0001.
Массив низя - посему проверка будет весьма громоздка.
Не подходит для случая с числом большой длины (исходная задача) | от 0 до 999*
Вообще, я почему-то условие первой задачи понял так:
Есть число, мы можем менять местами его цифры, перебрать и вывести на экран все комбинации.
Но если брать по аналогии с
Задача 5: Пользователь вводит число А не более 4-х разрядов. Вывести всевозможные комбинации из цифр этого числа длиной числа А. Цифры могут повторяться. Без массива!
То условие первой задачи должно выглядеть так:
Пользователь вводит число А. Вывести всевозможные комбинации из цифр этого числа длиной числа А. Цифры могут повторяться. Без массива!
То, что числа могут повторяться, полностью гробит смысл требования "Без массива", т.к. нам придется все-таки узнать, какие конкретно в исходном числе цифры, сколько раз они и там повторяются и т.д., т.е. мы эти цифры оттуда возьмем с помощью див/модов, так какая разница - с тем же успехом мы могли бы эти цифры брать и из массива. Просто все немножко геморройнее.
Требование "Без массива" имело бы смысл, если бы задача была исключительно на перестановки. Хотя, мб я чего-то не вижу) |
1|2|3|4К списку тем
|