Форум программистов, компьютерный форум CyberForum.ru

Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами - C++

Восстановить пароль Регистрация
 
Yellow13oy
0 / 0 / 0
Регистрация: 06.12.2013
Сообщений: 22
11.01.2014, 13:21     Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами #1
Задача 37.
Дано натуральное число n<1000. Переставить его десятичные цифры так, чтобы получить максимально возможное число, записанное теми же цифрами
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 13:21     Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами
Посмотрите здесь:

C++ Дано натуральное трехзначное число n. Переставить его цифры так, чтобы образовалось максимальное число, записанное теми же цифрами.
Требуется вычеркнуть минимально возможное количество чисел так, чтобы оставшиеся числа шли в порядке возрастания C++
Перестановка цифр в числе таким образом, чтобы получить наименьшее число записанное этими же цифрами C++
В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими цифрами C++
C++ В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
__General__
24 / 24 / 3
Регистрация: 04.01.2014
Сообщений: 91
Завершенные тесты: 2
11.01.2014, 17:20     Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами #2
переводишь число в строку, сортируешь символы-цифры в строке по убыванию, затем переводишь обратно в число.

(я так понял, число не отрицательное)
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
11.01.2014, 17:49     Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами #3
Цитата Сообщение от __General__ Посмотреть сообщение
переводишь число в строку, сортируешь символы-цифры в строке по убыванию, затем переводишь обратно в число
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <iostream>
#include <string>
 
int main()
{
    int number;
    std::cout << "Number: ";
    std::cin >> number;
    
    char stringNumber[5];
    _itoa_s(number, stringNumber, 5, 10);
    std::sort(stringNumber, stringNumber + strlen(stringNumber), [] (int firstChar, char secondChar) -> bool {
        return firstChar > secondChar;
    });
    number = atoi(stringNumber);
    std::cout << "Result number: " << number << std::endl;
 
    std::system("pause");
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
11.01.2014, 18:07     Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами #4
Перевод в строку совсем не обязателен, хотя запрограммить немного проще.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
 
int MaxValue( int value )
{
    std::vector<int> v;
    while( value )
    {
        v.push_back(value%10);
        value /= 10;
    }
    std::sort( v.begin(), v.end(), std::greater<int>() );
    int result = 0; 
    for( const int i : v )
    {
        result = result*10 + i;
    }
    return result;
}
 
int main() {
 
    std::cout << MaxValue( 1234 ) << std::endl;
    std::cout << MaxValue( 1200 ) << std::endl;
    std::cout << MaxValue( 1000 ) << std::endl;
    std::cout << MaxValue( 9876 ) << std::endl;
    std::cout << MaxValue( 9879 ) << std::endl;
    
    return 0;
}
Yandex
Объявления
11.01.2014, 18:07     Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами
Ответ Создать тему
Опции темы

Текущее время: 05:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru