Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var x, a, b, count, g, result, m: longint;
- var arr_all: array [0..9] of integer; // Оно будет хранить все цифры. От 0 до 9 потому что лимит longint это 2147483647,
- // и в нём 10 цифр.
- var arr_n: array [0..9] of integer; // Оно будет хранить все нечётные цифры.
- begin
- readln(x);
- a := 0;
- count := 0;
- while (x > 0) do begin // Простой перебор цифр в числе х, почти такой же был в К.В.5
- b := x mod 10; // Цифра под индексом a в числе x
- arr_all[a] := b;
- if (b mod 2) <> 0 then begin // Если число нечётно...
- arr_n[count] := b; // ... запишем его в массив
- count := count + 1;
- end;
- x := x div 10;
- a := a + 1;
- end;
- count := 0; // Счётчик, какую по счёту нечётную цифру мы заменяем.
- for g := a-1 downto 0 do begin // Перебор всех цифр в массиве. Начинаем с a-1 и заканчиваем 0 что бы реверсировать всё.
- if (arr_all[g] mod 2) <> 0 then begin
- arr_all[g] := arr_n[count]; // 9-count потому что массив теперь реверсирован
- count := count + 1;
- end;
- end;
- result := 0;
- m := 1;
- for g := 0 to a-1 do begin // Перебор всех цифр в массиве.
- result := result + arr_all[g]*m; // Получение из массива число.
- m := m * 10; // Переход на следующие десятки.
- end;
- writeln(result);
- end.
Add Comment
Please, Sign In to add comment