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

18 Сен 2019 в 17:43
192 +1
0
Ответы
1

Вот пример программы на языке C++:

#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string number;
std::cin >> number;
std::sort(number.begin(), number.end());
if (number[0] == '0') {
for (int i = 1; i < number.length(); i++) {
if (number[i] != '0') {
std::swap(number[0], number[i]);
break;
}
}
}
std::cout << number << std::endl;
return 0;
}

Эта программа сначала считывает число как строку, затем сортирует все цифры по возрастанию. Если первая цифра полученного числа равна нулю, она меняется местами с первой ненулевой цифрой. Наконец, программа выводит отсортированную строку, которая и будет самым маленьким возможным числом той же разрядности.

19 Апр в 22:01
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир