profile
Размещено 5 лет назад по предмету Информатика от Oliviya16

Дан массив, содержащий 2020 положительных целых чисел не превышающих 15 000. Необходимо найти минимальный элемент, двоичная запись которого заканчивается не более чем одним нулём, уменьшить все нечётные элементы массива, превышающие найденный минимум, на величину этого минимума и вывести измененный массив. Если в массиве нет элементов, двоичная запись которых заканчивается не более чем одним нулем, нужно вывести массив без изменений.
Например, для массива 12, 13, 18, 19, 20, 15 нужно получить и вывести массив, содержащий числа 12, 13, 18, 6, 20, 2.
Программа на Паскале! Помогите, пожалуйста

  1. Ответ на вопрос
    Ответ на вопрос дан HappyCoder

    Вообщем потанцевав с бубном, вроде как пришел к логическому завершению программы. Но есть одни ньансы, первое если поставить массив меньше, программа начнет жестко троить. Возможно я, аля такой херовый цхакер, или просто руки не из плечей) Ну да ладно

    • const
    •  n = 2020;
    • var
    •  a: array[1..2020] of integer;
    •  b: array[1..2020] of integer;
    •  i, min, y: integer;
    • function tobin2(x: integer): string;
    • var
    •  s: string;
    • begin
    •  s := '';
    •  while x > 0 do
    •  begin
    •    s := c==hr(ord('0') + x mod 2) + s; //Удалить знак "="
    •    x := x div 2;
    •  end;
    •  tobin2 := s;
    • end;
    • begin
    •  Writeln('Исходный массив');
    •  for i := 1 to n do
    •  begin
    •    a[i] := Random(1, 15000);
    •    Write(a[i], ' ');
    •  end;
    •  Writeln();
    •  min := a[1];
    •  y := 1;
    •  for i := 1 to n do
    •  begin
    •    b[i] := StrToInt64(tobin2(a[i]));
    •    if (b[i] mod 10 = 0) and (((b[i] div 10) mod 10) <> 0) then
    •      repeat
    •        if min > a[i] then  
    •          min := a[i];
    •        y += 1;
    •      until y > n;
    •  end;
    •  Writeln('Минимальный элемент: ', Min, '--->', tobin2(min));
    •  Writeln('Преобразованный масив');
    •  for i := 1 to n do
    •  begin
    •    if (a[i] > min) and (Odd(a[i])) then
    •      a[i] := a[i] - min;
    •    Write(a[i], ' ');
    •  end;
    • end.

    Что это СиеПрограмка показывает

    1. Исходный массив

    2. Минимальный элемент и его двоичного собрата))

    3. Преобразованный масив

    • Исходный массив
    • 14410 11670 6510 14010 1820 1520 9150 10944 5734 9675 14241 8625 7342 7267 12148 6811 13002 3015 3154 12772 14079 7601 9272 5673 7575 11451 10275 2864 6589 8974 1077 8940 999 13445 5581 476 12607 9795 9321 7003 11957 9984 11186 11590 9195 13802 2912 7635 12928 4027 6057 3056 1366 9341 14337 6810 2399 837 6436 5369 6246.....и.т.д
    • Минимальный элемент: 38--->100110
    • Преобразованный масив
    • 14410 11670 6510 14010 1820 1520 9150 10944 5734 9637 14203 8587 7342 7229 12148 6773 13002 2977 3154 12772 14041 7563 9272 5635 7537 11413 10237 2864 6551 8974 1039 8940 961 13407 5543 476 12569 9757 9283 6965 11919 9984 11186 11590 9157 13802 2912 7597 12928 3989 6019 3056 1366 9303 14299 6810 2361 799 6436 5331 6246 6249 4356 11723 8598 5302 ....и т.д.

    1. Ответ на вопрос
      Ответ на вопрос дан Oliviya16
      Мы сейчас так и пишем, точнее нас именно так и учат
    2. Ответ на вопрос
      Ответ на вопрос дан BobbyFresnel
      Сечас все-така 2020-й
    3. Ответ на вопрос
      Ответ на вопрос дан Oliviya16
      Всё верно)
  2. Ответ на вопрос
    Ответ на вопрос дан BobbyFresnel

    ==== PascalABC.NET =====

    begin

     var a := ArrRandom(2020, 1, 15000);

     a[:100].Println; // первые 100 чисел

     var m := a.Where(p -> p.IsOdd or p.IsEven and (p mod 4 <> 0)).Min;

     a.Transform(p -> p.IsOdd and (p > m) ? p - m : p);

     Writeln; // отступ

     a[:100].Print; // первые 100 чисел

    end.

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.