В натуральном числе n поменять местами порядок цифр для получения наибольшего числа - Turbo Pascal
Формулировка задачи:
Вводится какое-то число n, к примеру, 2473, а программа должна поменять порядок следования цифр таким образом, чтобы получилось максимальное возможное из этих цифр число(в данном случае - 7432). Количество цифр в числе n должно находится автоматически или вводится с клавиатуры.
Решение задачи: «В натуральном числе n поменять местами порядок цифр для получения наибольшего числа»
textual
Листинг программы
var digits: array[0..9] of byte;
i, j: byte;
x: longint;
begin
{for i := 0 to 9 do digits[i] := 0;}
repeat
write('0 < x < 1000000000; x = ');
readln(x)
until (x > 0) and (x < 1000000000);
repeat
inc(digits[x mod 10]);
x := x div 10
until x = 0;
for i := 9 downto 0 do
for j := 1 to digits[i] do
x := x * 10 + i;
write('"Maximized" x = ', x);
readln
end.
Объяснение кода листинга программы
Этот код написан на Turbo Pascal и выполняет следующую задачу: он принимает на вход число от 0 до 999999999, затем меняет местами порядок его цифр, чтобы получить наибольшее возможное число. Затем он выводит это число. Вот как это работает:
- Создается массив
digitsдлиной от 0 до 9, который будет использоваться для хранения цифр числа. - Задаются две переменные
iиjтипаbyte, которые будут использоваться для инкрементирования и декрементирования цифр числа. - Задается переменная
xтипаlongint, которая будет использоваться для хранения числа. - В цикле
repeatсчитывается число от пользователя. - Проверяется, что число больше 0 и меньше или равно 1000000000. Если это условие выполняется, то цикл продолжается.
- В цикле
repeatинкрементируется значение каждой цифры числа в массивеdigits. - Затем значение числа делится на 10, и этот процесс повторяется до тех пор, пока число не станет равным 0.
- После этого выводится максимальное число, которое было получено в результате предыдущих операций.
- Затем пользователю предлагается ввести еще одно число, и цикл повторяется. Таким образом, этот код позволяет пользователю вводить числа, а затем преобразовывать их в максимально возможные числа путем изменения порядка цифр.