Весенние старты 2026 з2

г. Иркутск

Конкурс юных программистов «Весенние старты» 2026
Номинация "Решение программистских задач"
Автор заданий Г.Б. Рейнгольд

Задача B. Кубики-1 (20 баллов)

Вася строит из кубиков такое сооружение:

Сперва на пол укладывается кубики в виде квадрата, сторона которого представляется нечётным количеством кубиков.
Сверху на него ставятся кубики таким образом, чтобы получился куб. Далее сверху устанавливается куб, сторона которого на два меньше…
И так далее, пока постройку не завершит один кубик.

Посмотрите внимательно рисунок. На нём представлены три проекции получившегося сооружения.

У Васи имеется некоторое количество кубиков. Он хочет построить самое большое сооружение вышеуказанным способом.

Сделать программу, которая подсчитает:

1. общее количество кубиков, которое необходимо для такой постройки;
2. количество кубиков в первом этаже;
3. количество этажей;
4. количество лишних кубиков.

Пример:

Вход – 200

Выход – 153 25 9 47

Формат входных данных: одно целое число >=1 и <=1000000000 (исходное количество кубиков).

Формат выходных данных: строка, в которой 4 целых числа, разделённых пробелами (количество кубиков в первом этаже, общее количество, количество этажей и количество лишних кубиков).

Лимит времени на прохождение одного теста –  1 секунда.

Авторское решение (Python)

# Весенние старты 2026.
# Задача B "Кубики-1"
# Авторское решение
# Автор заданий Рейнгольд ГБ
#
# Для решения этой задачи нужно обладать здравым смыслом,
# немного знать математику,
# уметь работать с переменными, циклами и ветвлениями.
# Желательно знать возведение в степень, но можно и обойтись умножением.

nk =  int(input()) # Ввод данных - количество кубиков
ke = 1 # Количество этажей
k = 1 # Сторона (в кубиках) квадрата этажа
nn = 1 # Общее количество кубиков, необходимых для постройки

while nn <= nk: # Главный цикл
    k += 2
    nn += k ** 3 # Добавляем целый куб со стороной k
    ke += k
   
if nn > nk: # В случае перебора отходим назад
    nn -= k ** 3
    ke -= k
    k -= 2

nl = nk - nn # количество лишних кубиков

# Выводится последовательно:
# количество кубиков, ушедших на постройку,
# количество в первом этаже,
# количество этажей
# и остаток.

print(nn, k**2, ke, nl)


Рецензии
Я с удовольствием записала формулу для расчёта числа кубиков в пирамиде.
Если принять: n - число кубиков в стороне квадрата в основании пирамиды,
n - высота куба, то общую формулу для определения числа кубиков в пирамиде можно записать следующим образом:
N = n в кубе + (n-2) в кубе + 1, или
N = 125 + 27 + 1 = 153.
Приятно было поиграть. Вашими рекомендациями не пользовалась. Честное слово.:))
С уважением и пожеланиями успехов в продолжении педагогической деятельности,

Алла Валько   24.09.2026 23:30   •   Заявить о нарушении
Добрый вечер, Алла Дмитриевна!

Большое спасибо за проявленный интерес! Вы поддержали престиж Бауманки и советского образования!

Григорий Рейнгольд   24.09.2026 15:34   Заявить о нарушении
На это произведение написаны 2 рецензии, здесь отображается последняя, остальные - в полном списке.