|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Разбить число с перестановкой разрядов числа по убыванию |
|
C/C++ - Разбить число с перестановкой разрядов числа по убыванию
|
Новый участник Сообщения: 1 |
Здравствуйте. Помогите решить задачу. Не могу разобраться с тем, что конкретно нужно сделать чтобы получить конечный результат.
Вот задача : Дано натуральное число n . Переставить его цифры так, чтобы образовалось максимальное число, записанное теми же цифрами. |
|
Отправлено: 16:17, 07-02-2012 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать user8605, давайте разобьём задачу на две подзадачи:
1. Чтобы переставить числа из препарируемого числа, его нужно разбить на разряды, сохранив разряды в массив равный количеству разрядов 2. Произвести пузырьковую сортировку массива разрядов по убыванию. 3. Перемножить числа по разрядам x * 1000 x * 100 + x * 10 + x (это грубо, но решается упрощённым способом) 4. Вывести итоговое число. Для начала решим первый вопрос - По заданному натуральному(целому) числу, определить количество цифр и найти их сумму. Собственно, первую часть для затравки я решил, остальное для вас труда не должно составить. По крайней мере жду ваших размышлений над вопросами. #include <iostream> using namespace std; // Функция расчитывающая количество чисел во введённом числе... int Rasriad(int enterNumber) { int n = enterNumber, x = 0; while (n != 0) { n /= 10; x++; } return x; } int main() { int enterNumber, lenght = 0, indexRas, decimal = 1, z, *Array; cout << "Enter Number: "; cin >> enterNumber; // определяет количество цифр в нем и их сумму. lenght = Rasriad(enterNumber); Array = new int [lenght]; // Создаём массив необходимой длины for(int j = 1; j < lenght; j++) decimal *= 10; for(int i = 0; i < lenght; i++){ indexRas = enterNumber / decimal % 10; Array[i] = indexRas; // Заполняем массив decimal /= 10; } // Необходимые операции для сортировки по убыванию // ... // "сложение" отсортированого массива в одно число // ... // Вывести итоговое число // ... cin>>z; return 0; } //--------------------------------------------------------------------------- |
------- Отправлено: 16:55, 07-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - VBA - Упорядочить матрицу по убыванию модулей элементов | x3 aka a-droo | Программирование и базы данных | 2 | 12-12-2011 01:16 | |
Числа и клетки 1.0 | OSZone Software | Новости программного обеспечения | 0 | 06-08-2010 10:30 | |
Простые числа на Си++ | nemo555 | Программирование и базы данных | 13 | 13-03-2007 21:24 | |
четность числа | elfoflorien | Вебмастеру | 6 | 18-09-2005 20:49 | |
суммироват числа | Artashes | Программирование и базы данных | 3 | 30-08-2003 18:31 |
|