maks380i
03.02.2020 23:35

Информатика, 9 класс. плз! на оценку задали.15

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Ly3577
03.03.2021 11:14

ответ на Python:

a = list(map(int,input().split())) #Принимаем массив из одной строки

s = 0 #Счётчик

for i in range(len(a)-2): #Проход по массиву до пред-предпоследнего элемента

   if a[i] == (a[i+1] + a[i+2]) / 2: # Проверяем, является ли этот элемент средним арифметическим 2-х следующих

       s += 1 #Прибавляем счётчик

print(s) #Выводим ответ

Или вот:

a = list(map(int,input().split()))

s = 0

for i in range(len(a)-2):

   a1 = a[i+1]

   a2 = a[i+2]

   if a[i] == (a1 + a2) / 2:

       s += 1

print(s)

Объяснение:

0,0(0 оценок)
Ответ:
sofisnow0826
09.07.2021 20:36
С небольшой правкой процедуры, уменьшающей вдвое время ее работы.

procedure KolDel(n: integer; var res: byte);
var
  i: integer;
begin
  res := 2;
  for i := 2 to n div 2 do
    if n mod i = 0 then
      res := res + 1;
end;

var
  m, n, i: longint;
  mx, kd: byte;

begin
  repeat
    writeln('Введите интервал, 2 натуральных числа, второе больше первого');
    readln(m, n);
  until n > m;
  mx := 1;
  for i := m to n do
  begin
    KolDel(i, kd);
    if kd > mx then mx := kd
  end;
  writeln('Наибольшее количество делителей имеют числа:');
  for i := m to n do
  begin
    KolDel(i, kd);
    if kd = mx then write(i, ' ')
  end;
  writeln;
  write('количество=', mx);
  readln
end.

А вот такой вариант работает в 3.5 раза быстрее:

procedure KolDel(n: integer; var res: byte);
var
  i: integer;
begin
  res := 2;
  for i := 2 to n div 2 do
    if n mod i = 0 then
      res := res + 1;
end;

var
  m, n, i: longint;
  mx, kd, k: byte;
  a: array[1..255] of longint;

begin
  repeat
    writeln('Введите интервал, 2 натуральных числа, второе больше первого');
    readln(m, n);
  until n > m;
  mx := 1;
  for i := m to n do
  begin
    KolDel(i, kd);
    if kd > mx then begin mx := kd; k := 1; a[k] := i end
    else
    if kd = mx then begin k := k + 1; a[k] := i end
  end;
  writeln('Наибольшее количество делителей имеют числа:');
  for i := 1 to k do Write(a[i], ' ');
  Writeln;
  Write('Количество=', mx);
  readln
end.

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