|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
||||||
Перестановка без повторений19.11.2015, 21:56. Показов 2708. Ответов 16
Метки нет (Все метки)
Всем привет! У меня возникла небольшая проблема при написании программы, буду благодарна за любую помощь. Задание гласит следующее: Нужно написать программу, которая считывает число и выдаёт все возможные перестановки данного числа без повторений. Например, Ввод: 1223 Вывод: 3221 3212 3122 2321 2312 2231 2213 2132 2123 1322 1232 1223 У меня получился следующий код, но , к сожалению, для перестановок с повторениями.
0
|
||||||
| 19.11.2015, 21:56 | |
|
Ответы с готовыми решениями:
16
Рандом без повторений
|
|
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
| 19.11.2015, 22:09 | |
|
Есть отличная ссылка. Внизу страницы можно переключить на "русский".
http://en.cppreference.com/w/c... ermutation
0
|
|
|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
|
| 19.11.2015, 22:14 [ТС] | |
|
Спасибо, но, к сожалению, нельзя по условию использовать <algorithm>/классы и т.д., так, конечно, было бы гораздо проще. Можно использовать рекурсию, что я и сделала. Но не могу придумать проверку на наличие повторений, дабы их не выводить в дальнейшем.
0
|
|
|
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
|
|
| 19.11.2015, 22:28 | |
|
anixiya, Да, но по ссылке имеется раздел "Possible implementation".
Может поможет вам, а мне лень думать над алгоритмом самому, т.е. откланиваюсь.
0
|
|
| 19.11.2015, 23:00 | ||||||
Сообщение было отмечено anixiya как решение
Решение
1
|
||||||
|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
|
| 20.11.2015, 20:32 [ТС] | |
|
_Ivana, Большое спасибо за ответ! Я бы хотела понять код, а не просто списать — не могли бы Вы кратко пояснить, как он "работает"? (если это возможно).
0
|
|
|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
|
| 20.11.2015, 21:42 [ТС] | |
|
_Ivana, так, у нас есть глобальная переменная : массив из 10 элементов. В главной области мы вводим число, потом переходим в функцию заполнения массива нулями, где i изначально = 10. Далее переходим в функцию перезаписи массива в соответствии с заданным числом. Если введенное число, например, 12, то a[2]=1 —> рекурсия —> i=1 - true -> arr[1]=1+1=2 -> рекурсия -> выходим из функции. Потом переход на функцию выдачи результатов/перезаписи массива. Мы проверям, e(10) тру или не тру. Переходим в функцию проверки, (тренарная условная операция) i=10 -> true -> возвращаем значение !arr[9] и рекурсия(9) ... Доходим до 0, возвращаем значение тру, и выводим "12". Дальше переходим в else, ибо значение уже false. И тут я запуталась... Кажется, что-то не так понимаю.
0
|
|
|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
|
| 20.11.2015, 21:51 [ТС] | |
|
_Ivana,
e — проверка на тру i, если возвращает значение тру, то выдаем результат в f c — заполнение массива нулями r — перезапись массива в соответствии с введеным числом f — выдаём значение, если е тру, если же нет, то перезаписываем массив еще раз + рекурсия
0
|
|
|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
|
| 20.11.2015, 22:07 [ТС] | |
|
_Ivana, r — заполнение массива цифрами, из которого состоит введенное нами число. Допустим, мы ввели значение "12". Тогда n сначала = 12, это тру, значит присваиваем m[12%10=2]=0+1=1;
далее рекурсия(12/10=1). n=1 — это всё еще тру, поэтому присваиваем m[1%10=1]=1+1=2, рекурсия (1/10=0). n=0, это false — выходим из функции.
0
|
|
| 20.11.2015, 22:21 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
|
| 20.11.2015, 22:30 [ТС] | |
|
_Ivana, попробовала число 4589
n=4589 m[9]=m[9]+1 n=458 m[8]=0+1 n=45 m[5]=0+1 n=4 m[4]=0+1 То есть мы помечаем номера ячеек, которые соответсвуют цифрам введенного числа, единицами. так?
0
|
|
|
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
|
|
| 20.11.2015, 22:34 [ТС] | |
|
_Ivana, последнее сообщение правильное, или?
хорошо, в любом случае спасибо)
0
|
|
| 20.11.2015, 22:38 | |
|
anixiya, ваше - нет, неправильное.
ЗЫ когда будете разбирать логику работы программ - старайтесь видеть не реализацию, а замысел, не "как" а "что". То есть, алгоритм.
0
|
|
| 20.11.2015, 22:38 | |
|
Помогаю со студенческими работами здесь
17
Перебор без повторений
Перестановки без повторений
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|