Правила
[Одномерные массивы]
32. Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.
--- --- --- --- --- --- --- Каким оружием могли бы быть разные языки программирования --- --- --- --- --- --- ---
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
[0, 0, 0, 0, 0, 0, 0, 5, 0, 6] например здесь возьмем три последние, очевидно что сумма уже не равна 10
значит вставлены не верно, можно добавить еще один цикл для проверки элементов меньше 1, и выкрикивать эксепшн
[0, 0, 0, 0, 0, 0, 0, 5, 0, 6]
[6, 5, -1, 6, 5, -1, 6, 5, -1, 6]
и еще по такому типу
[0, 0, 0, 0, 6, 5, 0, 0, 0, 0]
[-1, 6, 5, -1, 6, 5, -1, 6, 5, -1]
что не есть решение.
Итак немного поднявшись и изменив угол обзора, увидел замыливание в задаче, оказалось, что для решение надо перенести координатную ось до первого кубика, и если эта правая часть решаема то по полученному образцу (паттерну) добрать левую часть массива.
Вот мой вариант, еще есть куда оптимизировать, но это повлечет кучу проверок и еще увеличение кода:
Слыхали ты в гугл устроился, ну как там?)))
«Клиент всегда прав.»
Соглашаемся и уточняем условие, не соглашаемся, значить скачим дальше.