В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Паша2204
Паша2204
02.09.2022 09:38 •  Информатика

ТЕРМІНОВО Масив з N цілих чисел перегрупували, розмістивши спочатку елементи, що були на парних місцях, але лише потім елементи з непарними індексами, не змінюючи їх наступності у масиві. Рахуємо, що номерація починається з 0. Оновлений масив подається на вхід програми. Потрібно відновити початковий порядок елементів.​

Показать ответ
Ответ:

1)

var

  str : string;

begin

  readln (str);

  writeln (length (str) - pos (':', str));

end.

 

2)

var

  str, s : string;

  count, i : integer;

begin

  readln (str);

  s := copy (s, pos ('(', str) + 1, pos (')', str) - pos ('(', str) - 1);

  count := 0;

  for i := 1 to length (s) do

    if s[i] = ' ' then inc (count);

  writeln (count + 1);

end.

 

3)

var

  str : string;

  count : integer;

begin

  readln (str);

  count := 0;

  while pos (',', str) > 0 do

  begin

    inc (count);

    delete (str, pos (',', str), 1);

  end;

  writeln (str);

  writeln (count);

end.

 

Сделано без проверки на соответствие условию.

0,0(0 оценок)
Ответ:
nz010
nz010
23.09.2020 21:39

var

k : byte;
arr : array of int64;
function Fn (c : byte) : int64;
begin
if arr[c - 1] <> 0 then
begin
Fn := arr[c - 1];
exit;
end;
if c < 3 then Fn := 1
else Fn := Fn (c - 1) + Fn (c - 2);
arr[c - 1] := Result;
end;

begin
read (k);
setlength (arr, k);
writeln (Fn (k));
end.

var
n : byte;
arr : array of int64;

tmp : int64;
function Fn (c : byte) : int64;
begin
if arr[c - 1] <> 0 then
begin
Fn := arr[c - 1];
exit;
end;
if c < 3 then Fn := 1
else Fn := Fn (c - 1) + Fn (c - 2);
arr[c - 1] := Result;
end;

begin
read (n);
setlength (arr, n);
tmp :=  (Fn (n));

tmp := 0;

for i := 1 to n do

  tmp := (tmp + arr[i]) mod 2;

if tmp = 1 then writeln ('No') else writeln ('Yes');

end.

 

Это нисходящее динамическое программирование. В массиве Arr храняится сами числа. Рекурсивная функция Fn (n) возвращает N-ое число. В б) мы сначала просчитываем n чисел (то есть считаем число n, так как для него нужны все предыдущие), а потом ищем их сумму. Так как числа могут быть большими, то мы берем сразу их остаток от деления 2 во избежание преполнения.

 

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота