День 8 знаменитого Пришествия кода — я слышал, вам нравятся регистры
Это было проще, чем День 7, просто немного веселья с регулярными выражениями и переключением/регистром. Ничего особенного
Предыдущие части:
День 1
День 2
День 3
День 4
День 5
День 6 »
День 7
Проблема первая:
Вы получаете сигнал непосредственно от процессора. Из-за вашей недавней помощи с инструкциями перехода хотелось бы, чтобы вы вычислили результат серии необычных инструкций регистра.
Каждая инструкция состоит из нескольких частей: регистр, который нужно изменить, увеличить или уменьшить значение этого регистра, величину, на которую его нужно увеличить или уменьшить, и условие. Если условие не выполняется, пропустить инструкцию без изменения регистра. Все регистры начинаются с
0
. Инструкция выглядит так:
b inc 5 if a > 1
a inc 1 if b < 5
c dec -10 if a >= 1
c inc -20 if c == 10
Эти инструкции будут обрабатываться следующим образом:
Поскольку
a
начинается с0
, оно не больше1
, поэтомуb
не изменяется.
a
увеличивается на1
(до1
), потому чтоb
меньше5
(это0
).
c
уменьшается на-10
(до10
), потому чтоa
теперь больше или равно1
(это1
).
c
увеличивается на-20
(до-10
), потому чтоc
равно10
.
После этого процесса наибольшее значение в любом регистре равно
1
.
Вы также можете встретить
<=
(меньше или равно) или!=
(не равно). Однако центральный процессор не имеет пропускной способности, чтобы сообщить вам, как называются все регистры, и оставляет это на ваше усмотрение.
Какое наибольшее значение в любом регистре после выполнения инструкций во вводе головоломки?
Проблема вторая:
Чтобы быть в безопасности, ЦП также должен знать наибольшее значение, хранящееся в любом регистре во время этого процесса, чтобы он мог решить, сколько памяти выделить для этих операций. Например, в приведенных выше инструкциях самым высоким значением, когда-либо хранившимся, было
10
(в регистреc
после выполнения третьей инструкции).
Решение:
Примечания:
Никто
SR.