allo22-27
?>

Turbo pascal (дан одномерный числовой массив. определить произведение элементов массива, расположенных между максимальным и «центральным» элементами массива (предполагается, что число элементов – нечетное и максимальный единственный

Информатика

Ответы

artem
Const n=15;
var a:array[1..n] of integer;
i,max,imax:integer; p:real;
begin
Randomize;
for i:=1 to n do begin
 a[i]:=random(21);
 write(a[i]:3);
 end;
writeln;
max:=a[1]; imax:=1;
for i:=2 to n do
 if a[i]>max
  then begin max:=a[i]; imax:=i; end;
writeln('max = ',max,'  imax = ',imax);
p:=1;
if imax > n div 2+1
 then for i:=n div 2+2 to imax-1 do p:=p*a[i]
 else for i:=imax+1 to n div 2 do p:=p*a[i];
writeln('p = ',p);
end.

Пример:
 16 14 14 20  6 12 16 15  7  0 19 17  0  7 14
max = 20  imax = 4
p = 1152
zaravshan20134

Так как речь идет о таблице, то лучше перебрать рекурсивно. Логично, что количество путей для клетки (i,j) - это количество путей для правой соседней клетки + количество путей для нижней соседней клетки.

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

(Иллюстрация 3 - таблица кэша)

Иллюстрации кода и возможного вывода прикреплены в дополнительных материалах.

========================

Ваши оценки и отзывы позволяют лучше оценить качество ответа.

Если ответ удовлетворил, не забудь отметить его как "Лучший".

Успехов в учёбе!

========================

Код:

cache = {}

def calculate_max_way_price(x: int, y: int, m:int, n:int):

  if (x, y) in cache:

      return cache[(x, y)]

  x_way, y_way = 0, 0

  if x < m - 1:

      x_way = calculate_max_way_price(x + 1, y, m, n)

  if y < n - 1:

      y_way = calculate_max_way_price(x, y + 1, m, n)

  if x == m - 1 and y == n - 1:

      cache[(x, y)] = 1

      return 1

  cache[(x, y)] = x_way + y_way

  return x_way + y_way

N = int(input())

M = int(input())

print(calculate_max_way_price(0, 0, N, M))


написать программу на питон: Количество маршрутов в прямоугольной таблице В прямоугольной таблице N×
написать программу на питон: Количество маршрутов в прямоугольной таблице В прямоугольной таблице N×
ИвановнаВладимир1832

Так как речь идет о таблице, то лучше перебрать рекурсивно. Логично , что количество путей для клетки (i,j) - это количество путей для правой соседней клетки + количество путей для нижней соседней клетки.

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

(Иллюстрация 3 - таблица кэша)

Иллюстрации кода и возможного вывода прикреплены в дополнительных материалах.

========================

Ваши оценки и отзывы позволяют лучше оценить качество ответа.

Если ответ удовлетворил, не забудь отметить его как "Лучший".

Успехов в учёбе!

========================

Код:

cache = {}

def calculate_max_way_price(x: int, y: int, m:int, n:int):

   if (x, y) in cache:

       return cache[(x, y)]

   x_way, y_way = 0, 0

   if x < m - 1:

       x_way = calculate_max_way_price(x + 1, y, m, n)

   if y < n - 1:

       y_way = calculate_max_way_price(x, y + 1, m, n)

   if x == m - 1 and y == n - 1:

       cache[(x, y)] = 1

       return 1

   cache[(x, y)] = x_way + y_way

   return x_way + y_way

N = int(input("Enter N value: "))

M = int(input("Enter M value: "))

print(calculate_max_way_price(0, 0, N, M))


Количество маршрутов в прямоугольной таблице В прямоугольной таблице N×M вначале игрок находится в л

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Turbo pascal (дан одномерный числовой массив. определить произведение элементов массива, расположенных между максимальным и «центральным» элементами массива (предполагается, что число элементов – нечетное и максимальный единственный
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Катерина Телюкин925
Винников724
picassovrn
алексей_Цуканов
Kondratev Ruzavina22
zrv85
Игорь Андрей
Struev730
Dms161964937
zaschitin48
Sokolova-Shcherbakov
Сергеевна-С.А.1549
marinakmaa86
mmreznichenko
ellyb106786