На вход программке поступает натуральное число не превышающее 10^30 Нужно написать

На вход программке поступает естественное число не превышающее 10^30 Нужно написать программку, которая, используя все цифры этого числа, формирует новое естественное число, причем самое маленькое из всех вероятных той же разрядности. На любом языке (лучше окончательно на C++ или Pascal ABC)

Задать свой вопрос
Арсений Райнбаев
Допустим 5 входное число. Что должна сделать программка?
Lidija Pilipas
ну допустим число 54321, оно обязано вывести 12345
1 ответ

Посчитаем количество раз, когда встречается любая цифра в начальном числе. Тогда ответ  или все числа, расположенные в порядке возрастания (если в начальном числе не было нулей), либо поначалу одна наименьшая цифра, потом все нули, позже все остальные числа в порядке возрастания.

С++:

include lt;iostreamgt;


int main()

   int count[10];

   char digit;

   for (digit = 0; digit lt; 10; digit++)

       count[digit] = 0;

   

   while (std::cin.get(digit))

       digit -= '0';

       if ((digit lt; 0) (digit gt; 9))

           break;

       

       count[digit]++;

   

   digit = 1;

   while (count[digit] == 0)

       digit++;

   

   std::cout lt;lt; int(digit);

   count[digit]--;

   for (digit = 0; digit lt; 10; digit++)

       for (int i = 0; i lt; count[digit]; i++)

           std::cout lt;lt; int(digit);

       

   

   return 0;


Пример ввода: 11111111112345678098765422

Пример вывода: 10111111111222344556677889

, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт