Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
FilippovKG
0 / 0 / 0
Регистрация: 31.12.2018
Сообщений: 1
1

Перебор цифр числа

20.01.2019, 18:31. Просмотров 864. Ответов 1

Вообщем, дано задание: Дано два числа N, K, из цифр N необходимо составить такое число чтобы оно удовлетворяло условию N < K и было максимальным.
Пример: 4500789 5000000 , где вывод 4987500.
Как организовать такой перебор?
Пытался смещениями в право в лево, где каждый старший разряд включает смещение младних, при этом в начале приводил число к максимальному значинию. И всё бы нормально только перебор после 4 разряда специфичен и не поддаётся простому смещению вправо в лево.
Заметил такую особенность, что если число начиная с больших порядков меньше все остальные цифры идут от большего к меньшему.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2019, 18:31
Ответы с готовыми решениями:

Написать программу которая определяет сумму четных цифр первого числа и нечетных цифр второго числа
Написать программу которая определяет сумму четных цифр первого числа и нечетных цифр второго...

Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых произведение...

Если среди цифр заданного трехзначного числа имеется ноль, то получить квадрат этого числа, в противном случае произведение его цифр (Switch)
Здравствуйте)помогите,пожалуйста, написать программу с оператором switch для задачи: если среди...

Определить, равна ли сумма двух первых цифр заданного числа четырехзначного числа сумме двух его последних цифр
Написать программу, позволяющую определить, равна ли сумма двух первых цифр заданного числа...

Найдите простые числа такие, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7
найдите простые числа такие, чтобы сумма их цифр, а также сумма цифр следующего за ним числа...

1
krolligator
110 / 88 / 31
Регистрация: 24.10.2018
Сообщений: 327
20.01.2019, 18:53 2
Лучший ответ Сообщение было отмечено FilippovKG как решение

Решение

Берем максимальное число для старшего разряда, которое удовлетворяет условию - меньше или равно цифре в старшем разряде у K. Дальше то же самое проделываем со следующими разрядами. До первого числа, которое будет меньше, чем у К. После этого все числа можно спокойно сразу расставлять в порядке убывания. Если где-то натыкаемся на то, что нет такой цифры, которая удовлетворяет условию, то откатываемся до последней "хорошей" позиции и продолжаем тот же алгоритм.
Для твоего примера. Первое число у К - 5. У нас самое больше для него - тоже пять. Идем дальше. 0 есть. 0 есть. Потом у нас не осталось чисел меньше или равных 0. Поэтому откатываем до последнего рабочего варианта. И меняем 5 теперь на 4. Так как самый старший разряд меньше, чем у К. Наше число уже никак не может быть больше К. Поэтому спокойно в порядке убывания расставляем оставшиеся цифры.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2019, 18:53

Найти сумму нечетных цифр числа Определить состоит ли число из одинаковых цифр
Помогите написать прогу. Найти сумму нечетных цифр числа Определить состоит ли число из...

Сумма двух первых цифр данного четырехзначного числа равна сумме двух его последних цифр
Помогите найти ошибку программа работает, но не правильно Проверить истинность высказывания:...

Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр
Написать программу, позволяющую определить, равна ли сумма двух первых цифр заданного числа...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru