Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15

Перестановка чисел в числе

15.09.2015, 17:17. Показов 4059. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста составить блок-схему или псевдокод для задачи:

Разработайте алгоритм, который переставляет цифры в числе так, что получается следующее по значению крупное число (пусть число содержит все десять цифр по одному разу). Например 5647382910 получается из 5647382901 перестановкой двух последних цифр.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2015, 17:17
Ответы с готовыми решениями:

Перестановка цифр в числе
Как из числа 123 получить числа с разным расположением цифр без повторений(132, 213, 231, 312, 321)

Перестановка цифр числе
Ребят, помогите пожалуйста: Даны k (k > 1) натуральных n. Выбросить из записи числа n цифры 0 и 2, оставив прежним порядок остальных...

Перестановка бит в числе
Необходимо переставить биты в числе, не понимаю как это сделать. Задание: переставить первый и четвертый бит, пятый и восьмой.

4
1967 / 823 / 114
Регистрация: 01.10.2012
Сообщений: 4,822
Записей в блоге: 2
15.09.2015, 18:16
1) Идем справа налево, имеем текущую цифру и набор цифр справа. Из него выбираем наименьшую цифру но больше текущей. Если такой нет, берем след цифру слева до тех пор пока не закончатся, иначе

2) Переставляем 2 найденные цифры и все справа от текущей сортируем по возрастанию

3) Возвращаемся к пункту 1 (опять начинаем с самой правой цифры)
1
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
16.09.2015, 17:53  [ТС]
Igor3D, спасибо что отозвались на помощь) не могли бы это в виде псевдокода написать, если не трудно, конечно?
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
16.09.2015, 19:29
Лучший ответ Сообщение было отмечено long399 как решение

Решение

Будем считать, что цифры числа хранятся в массиве, начиная с младшего разряда.

1. Ищем разряд, цифру в котором можно увеличить.
Находим самый младший разряд, содержащий цифру меньше, чем одна из цифр справа (то есть, в более младшем разряде).
Для числа 12368754 это разряд 4 (с цифрой 6).

2. Минимально увеличиваем цифру в этом разряде.
Меняем эту цифру с самой маленькой цифрой справа из тех, что больше.
Для числа 12368754 это цифра 7. После обмена 12378654.

3. Строим самое маленькое число в младших разрядах.
Сортируем все цифры справа по возрастанию. Так как они уже расположены в убывающем порядке, просто разворачиваем эту часть массива.
После разворота из 12378654 получаем 12374568.

C#
1
2
3
4
5
6
7
8
9
10
11
bool NextPermutation(int[] a)
{
    int i = 1;
    while(i < a.Length && a[i] > a[i-1]) i++;
    if(i >= a.Length) return false;
    int j = 0;
    while(a[i] > a[j]) j++;
    int tmp = a[i]; a[i] = a[j]; a[j] = tmp;
    if(i > 1) Array.Reverse(a, 0, i);
    return true;
}
1
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
16.09.2015, 19:37  [ТС]
Спасибо за помощь, ребят, большое!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.09.2015, 19:37
Помогаю со студенческими работами здесь

Перестановка цифр в числе
Вывести все различные числа, которые получаются в результате перестановки цифр в заданном натуральном числе N (0≤N≤65537).

Перестановка битов в двоичном числе
Добрый день! Подскажите, пожалуйста, как правильно перемешать битовую последовательность, которая задается с клавиатуры, так, чтобы...

Перестановка цифр в числе/букв в слове
Помогите с алгоритмом. Есть число например 1234, нужно найти все числа получаемые перестановкой цифр в числе(т.е. 1243, 1342, 3241,...

Перестановка десятичных цифр в трехзначном числе
напишите программку)) Из трехзначного числа х вычли его последнюю цифру. Когда резуль- тат разделили на 10, а к частному слева...

Задача С#: Перестановка цифр в трёхзначном числе
Дано трехзначное число.В нем зачеркнули первую слева цифру и приписали ее справа. Вывести полученное число!!! Это надо было сделать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru