Алгоритм
.Для вычисления общего количества необходимых сфер алгоритм использует набор формул, учитывающих ширину и длину каждого уровня пирамиды, а также высоту пирамиды. Ниже подробно описаны шаги алгоритма.
1. Из начальной высоты h вычитается 1. Самый нижний слой считается первым слоем, а самый верхний – (h + 1)-м слоем.
Однако формула, используемая в коде, предполагает, что самый нижний слой – это 0-й слой, а самый верхний – это h-й слой.
Поэтому чтобы высота h соответствовала используемой формуле, нужно вычесть 1 из входной высоты h (т. е. h + 1–1, или h).
2. Общее количество блоков для данного уровня вычисляется с использованием следующей формулы:
a = m ∗ n ∗ (h + 1).
3. К общей сумме прибавляется количество блоков, необходимых для каждого уровня пирамиды, согласно формуле
a += (m + n) ∗ (h ∗ (h + 1)//2),
сумма первых h треугольных чисел, умноженная на сумму m и n.
4. Наконец, прибавляются дополнительные блоки, необходимые для создания каждого слоя пирамиды, по следующей формуле:
a += (h ∗ (h + 1) ∗ (2 ∗ h + 1))//6.
5. В завершение возвращается полученное значение a. Оно равно сумме первых h квадратных чисел, деленной на 6.