Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Yellow13oy
0 / 0 / 0
Регистрация: 06.12.2013
Сообщений: 22
#1

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

11.01.2014, 13:21. Просмотров 1105. Ответов 3
Метки нет (Все метки)

Задача 37.
Дано натуральное число n<1000. Переставить его десятичные цифры так, чтобы получить максимально возможное число, записанное теми же цифрами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 13:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переставить десятичные цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами (C++):

Дано натуральное трехзначное число n. Переставить его цифры так, чтобы образовалось максимальное число, записанное теми же цифрами. - C++
Дано натуральное трехзначное число n. Переставить его цифры так, чтобы образовалось максимальное число, записанное теми же цифрами.

Переставить цифры числа так, чтобы получилось минимальное возможное число - C++
Дано натуральное число n. Необходимо переставить его цифры таким образом, чтобы получилось минимальное возможное число без ведущих нулей.

В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами - C++
2. В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами.

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими цифрами - C++
1)В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими же цифрами. 2)Дано...

Получите число, записанное теми же цифрами, но в противоположном порядке - C++
Дано число n, десятичная запись которого не содержит нулей. Получите число, записанное теми же цифрами, но в противоположном порядке. ...

Рекурсия. Получите число, записанное теми же цифрами, но в противоположном порядке - C++
Дано число n, десятичная запись которого не содержит нулей. Получите число, записанное теми же цифрами, но в противоположном порядке. При...

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

(я так понял, число не отрицательное)
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 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;
}
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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;
}
1
11.01.2014, 18:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2014, 18:07
Привет! Вот еще темы с ответами:

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

Переставить цифры в этом числе так, чтобы получить наименьшее из чисел - C++
Задача такая: Задано натуральное N, состоящее не более, чем из 6 цифр. Переставить цифры в этом числе так, чтобы получить наименьшее из...

Переставить цифры местами так, чтобы получилось большее число - C++
Дано число. Если можно переставить его цифры так, чтобы получилось большее число, выведите YES, в противном случае выведите NO....

Для всех целых чисел отрезка [A,B] получить числа, записанные теми же цифрами, но в обратном порядке - C++
Помогите Для всех целых чисел отрезка получить числа, записанные теми же цифрами, но в обратном порядке.


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

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

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