Laster_Alex

Z6

Feb 17th, 2022 (edited)
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.75 KB | None | 0 0
  1. var x, a, b, count, g, result, m: longint;
  2. var arr_all: array [0..9] of integer;  // Оно будет хранить все цифры. От 0 до 9 потому что лимит longint это 2147483647,
  3. // и в нём 10 цифр.
  4. var arr_n: array [0..9] of integer;  // Оно будет хранить все нечётные цифры.
  5. begin
  6.     readln(x);
  7.     a := 0;
  8.     count := 0;
  9.     while (x > 0) do begin  // Простой перебор цифр в числе х, почти такой же был в К.В.5
  10.         b := x mod 10;  // Цифра под индексом a в числе x
  11.         arr_all[a] := b;
  12.         if (b mod 2) <> 0 then begin  // Если число нечётно...
  13.             arr_n[count] := b;  // ... запишем его в массив
  14.             count := count + 1;
  15.         end;
  16.         x := x div 10;
  17.         a := a + 1;
  18.     end;
  19.    
  20.     count := 0;  // Счётчик, какую по счёту нечётную цифру мы заменяем.
  21.    
  22.     for g := a-1 downto 0 do begin  // Перебор всех цифр в массиве. Начинаем с a-1 и заканчиваем 0 что бы реверсировать всё.
  23.         if (arr_all[g] mod 2) <> 0 then begin
  24.             arr_all[g] := arr_n[count];  // 9-count потому что массив теперь реверсирован
  25.             count := count + 1;
  26.         end;
  27.     end;
  28.     result := 0;
  29.     m := 1;
  30.     for g := 0 to a-1 do begin  // Перебор всех цифр в массиве.
  31.         result := result + arr_all[g]*m;  // Получение из массива число.
  32.         m := m * 10;  // Переход на следующие десятки.
  33.     end;
  34.     writeln(result);
  35. end.
  36.  
Add Comment
Please, Sign In to add comment