1. Двойная бухгалтерия (truebook) (100 баллов)
Один нечестный бухгалтер, пользуясь благодушием директора и
привычкой подписывать документы не глядя, начал в ведомости исправлять свою
зарплату, переставляя в ней цифры так, чтобы она становилась максимальной.
Когда всё выяснилось, и бухгалтера с позором выгнали, директор попытался
определить, на какую сумму бухгалтер его обманывал. Но бухгалтер уничтожил
исправленную ведомость, оставив только настоящую. Помогите директору, зная
размер настоящей зарплаты бухгалтера, определить, какую сумму тот в реальности
получал.
Входные данные
Одно целое неотрицательное число S
≤ 109 – сумма, которую должен был получать бухгалтер
Выходные данные
Одно число R
– сумма, которую он в реальности получал.
Примеры
№
|
Ввод (truebook.in)
|
Вывод
(truebook.out)
|
1
|
56701
|
76510
|
2
|
55000
|
55000
|
3
|
12000
|
21000
|
program ideone;
var
x : longint;
dig : array [1..20] of integer;
n : integer;
i, j, tmp : integer;
begin
writeln('Задайте число x');
readln(x);
if x = 0 then begin
writeln(0);
exit;
end;
n := 0;
while x > 0 do begin
dig[n+1] := x mod 10;
x := x div 10;
n := n + 1;
end;
{for i := 1 to n do write(dig[i]); writeln;}
for i := 1 to n-1 do begin
for j := i + 1 to n do begin
if dig[j] > dig[i] then begin
tmp := dig[i]; dig[i] := dig[j]; dig[j] := tmp;
end;
end;
end;
writeln('Вывод результата');
for i := 1 to n do write(dig[i]);
writeln;
end.
Комментариев нет:
Отправить комментарий