Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2020, 11:35   #1
Eric_0110
Новичок
Джуниор
 
Регистрация: 06.01.2020
Сообщений: 1
Сообщение наибольшее значение числа n

Коротко о задаче.

Дано например число 6489.

Должны вывести в консоль его наибольшее значение (т.e. 9864)

как решается, помогите пожалуйста!
Eric_0110 вне форума Ответить с цитированием
Старый 06.01.2020, 13:26   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Странная формулировка. Не наибольшее значение числа (число не может иметь несколько значений), а максимальное число, полученное перестановкой цифр.

Решается просто - сортировка цифр по невозрастанию.
Arigato вне форума Ответить с цитированием
Старый 06.01.2020, 18:27   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Предложу такой алгоритм:
1. Принять число (число цифр может быть достаточно большим);
2. Создаём массив целых чисел размерности 10 и обнуляем его элементы. Этот массив будет хранить число цифр в числе. Индекс массива - цифра числа;
3. В цикле, пока не получим ноль:
4. Выделяем цифры числа (деление по модулю), ...
5. Значение цифры - индекс массива. Инкрементируем (увеличиваем на 1) значение соответствующего элемента массива;
6. В цикле просматриваем наш массив в обратном порядке и выводим число цифр (индекс), равное числу в элементе массива
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 10.01.2020, 11:56   #4
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Код:
#include <iostream>


using namespace std;




int main()
{



    long long n;
    cout<<"Input chislo: ";
    cin>>n;

    string s=to_string(n);


    bool t = true;
    while (t)
    {
        t = false;
        for (int j = 0; j < s.length() - 1; j++)
        {
            if (s[j] < s[j + 1])
            {
                char tmp = s[j];
                s[j] = s[j + 1];
                s[j + 1] = tmp;
                t = true;


            }
        }
    }



    cout<<s<<endl;


    return 0;
}
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Удалить из файла три первых числа. Найти в файле наибольшее число и два числа, стоящих перед ним. Бугра Помощь студентам 1 05.04.2016 16:08
Притянуть наибольшее значение Евгений Таб Microsoft Office Excel 3 16.02.2015 15:13
Найти наибольшее значение матрицы vlad1kT Помощь студентам 0 16.06.2013 10:49
найти наибольшее значение laychan Помощь студентам 1 23.03.2012 12:48
наибольшее значение функции Defunate Помощь студентам 1 12.09.2011 10:27