Работа 3.4 Упр.17 Задание 3 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 17. Дано натуральное число n. Переставить его цифры так, чтобы образовалось наименьшее число, записанное теми же цифрами. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-4/zad3/17 98
Чтобы получить наименьшее число из тех же цифр, нужно выписать цифры исходного числа по возрастанию. В программе это делается так: последовательно перебираются цифры от $$0$$ до $$9$$, и каждый раз из числа выбираются все цифры, равные текущей.
Если очередная цифра $$k$$ встречается в числе, то она дописывается к результату $$m$$ по формуле $$m=m\cdot 10+k$$. После этого цифра удаляется из числа делением на $$10$$, и поиск продолжается, пока все цифры не будут просмотрены.
uses crt;
var n,m,a,p,k,i: integer;
begin
repeat
writeln(‘Введите натуральное число до 2 147 483 647’);
read(n);
until (n>0) and (n<2147483647);
a:=n; m:=0;
for i:=0 to 9 do {начиная с 0 ищем в числе цифры по возрастанию}
begin
p:=n; {запоминаем число}
while p>0 do
begin
k:=p mod 10; {ищем цифру 0..9}
if k=i then m:=m*10+k; {если есть, то дописываем цифру к результату}
p:=p div 10; {сокращаем число на 10 и повторяем пока не проверим все цифры}
end;
end;
writeln(‘M=’,m);
end.
Ответ: программа переставляет цифры числа по возрастанию и выводит наименьшее число, составленное из тех же цифр.