с С++ Возьмем кубик и приклеим к его граням еще по такому же кубику. В результате получим фигуру, представленную на втором рисунке. К свободным граням полученной фигуры, приклеим еще кубики. На рисунке представлены «кубооктаэдры» степеней 0, 1, 2.
Кубооктаэдром степени N назовем фигуру, полученную в результате N-го доклеивания кубиков. Требуется составить программу, подсчитывающую, количество кубиков для кубооктаэдра N-й степени.
Требуется вывести одно число — количество кубиков для кубооктаэдра степени N.
Производим обратные действия: имея команды "разделить на 3", "разделить на 2" и "отнять 1", сделать из 84 львов 1.
Поскольку нам нужно минимальное количество действий, будем пробовать команды именно в том порядке, в котором они указаны выше, только сначала проверяем, можем ли мы получить число, делящееся на 3 без остатка, отняв только 1.
1) 84 делится на 3 без остатка, результат - 28.
2) Ближайший делитель 3 к 28 - это 27, получить его можем в одну команду "отнять 1".
Производим обратные действия: имея команды "разделить на 3", "разделить на 2" и "отнять 1", сделать из 84 львов 1.
Поскольку нам нужно минимальное количество действий, будем пробовать команды именно в том порядке, в котором они указаны выше, только сначала проверяем, можем ли мы получить число, делящееся на 3 без остатка, отняв только 1.
1) 84 делится на 3 без остатка, результат - 28.
2) Ближайший делитель 3 к 28 - это 27, получить его можем в одну команду "отнять 1".
Поскольку нам нужно минимальное количество действий, будем пробовать команды именно в том порядке, в котором они указаны выше, только сначала проверяем, можем ли мы получить число, делящееся на 3 без остатка, отняв только 1.
1)
84 делится на 3 без остатка, результат - 28.
2)
Ближайший делитель 3 к 28 - это 27, получить его можем в одну команду "отнять 1".
3) 27 / 3 = 9
4) 9 / 3 = 3
5) 3 / 3 = 1
ответ: 5 команд.