лика20042
08.08.2021 01:55

Привет, нужно решить задачу на питоне на !)


Привет, нужно решить задачу на питоне на !)

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
даша3635
16.07.2022 06:54

#include <stdio.h>

#include <math.h>

float eps = 0.000001;

int main()

{

float n; scanf("%f", &n);

float a[n];

for (int i=0;i<n;i++)

scanf("%f", a[i]);

char toCopy = 1;

for (int i=1;i<n;i+=2)

if (abs(round(a[i]) - a[i]) > eps)

{toCopy = 0; break;}

if (toCopy)

int b[n/2];

for (int i=n-(n%2), j=0;j<n/2;i-=2, j++)

b[j] = (int)a[i];

}

Объяснение:

Предполагаю, что сначала указывается количество элементов исходного массива. Далее происходит все то, что вы описали. eps - погрешность для определения целого числа, чем оно меньше - тем точнее числа будут определяться как дробные

0,0(0 оценок)
Ответ:
H1e1l1p
12.03.2021 07:34
//Обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками".
var
  a, b, c: array [1..100] of longint;
  i, min, n, j, t: longint;

begin
  //Читаем количество элементов в нашем массиве.
  readln(n);
 
  //Читаем массив.
  for i := 1 to n do read(a[i]);
 
  //Заполняем первую "половинку".
  for i := 1 to n div 2 do b[i] := a[i];
 
  //Заполняем вторую "половинку". Но раз это уже вторая "половинка" главного массива, то и
  //цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце.
  for i := n div 2 + 1 to n do c[i - n div 2] := a[i];
 
  //Теперь отсортируем первую "половинку" методом выбора. Идея этого метода
  //основывается на том, что мы ищем минимальный среди неотсортированных элемент,
  //а затем просто swap-аем его с тем, который стоит сразу после отсортированных.
  for i := 1 to (n - 1) div 2 do
  begin
    min := i;
    for j := i + 1 to n div 2 do
      if b[min] > b[j] then
        min := j;
    if min <> i then begin
      t := b[i];
      b[i] := b[min];
      b[min] := t;
    end;
  end;
 
  //Затем вторую точно также, только стоит обратить внимание на сравнения.
  //Так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом
  //будет другим.
  for i := 1 to (n - 1) div 2 do
  begin
    min := i;
    for j := i + 1 to n div 2 do
      if c[min] < c[j] then
        min := j;
    if min <> i then begin
      t := c[i];
      c[i] := c[min];
      c[min] := t;
    end;
  end;
 
  //А теперь просто по очереди выводим готовые "половинки", не забывая ставить
  //пробел после вывода каждого элемента.
  for i := 1 to n div 2 do write(b[i], ' ');
  for i := 1 to n - n div 2 do write(c[i], ' ');
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота