Написать программу, определяющий суммарный вес камней - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

1 Задача!!!

Один древний правитель, решил построить в свою честь пирамиду, для ее постройки, он использовал камни разного веса, при чем на вершине лежал 1 камень, следующий ярус состоял из 2 камней, далее 3 камня и т.д. Известен вес каждого камня. Написать программу определяющий суммарный вес камней, на пути начиная на вершине пирамиды и заканчивая на ее основании. Каждый шаг на таком пути может осуществляться по диагонали вниз и влево или вниз и вправо. Исходный файл в 1 строке содержит количество ярусов такой же пирамиды (n), последующая n строка содержит содержит веса камней по ярусу.(Пример на рисунке)

Решение задачи: «Написать программу, определяющий суммарный вес камней»

textual
Листинг программы
begin
  var n := ReadLnInteger('Рядов: n =');
  var a : array [,] of Integer; Setlength(a, n, n);
  n -= 1;
  for var Row := 0 to n do
    for var Col := 0 to Row do
      a[Row, Col] := ReadLnInteger('Вес ' + (Col+1) + ' камня в ' + (Row+1) + ' ряду =');
  for var Row := 1 to n do
    begin
      a[Row, 0] += a[Row-1, 0];
      for var Col := 1 to Row do
        a[Row, Col] += max(a[Row-1, Col-1], a[Row-1, Col]);
    end;
  var maxWeight := a[n,0];
  for var Col := 1 to n do
    if a[n, Col] > maxWeight then
      maxWeight := a[n, Col];
  WriteLn('Максимальный вес = ' + maxWeight);
end.

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Ввод количества строк (n) с помощью функции ReadLnInteger.
  2. Создание двумерного массива a размером n на n с помощью функции Setlength.
  3. Заполнение массива a весами камней в каждой строке с помощью двух вложенных циклов и функции ReadLnInteger.
  4. Внутренний цикл для суммирования весов камней в каждой строке, начиная со второй строки.
  5. Нахождение максимального веса камня в последней строке (n) с помощью цикла и функции max.
  6. Вывод максимального веса на экран с помощью функции WriteLn.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы