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

18 Сен 2019 в 17:43
233 +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 Апр 2024 в 22:01
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир