人力资源机器28关优化挑战解法--三数排序
size challenge
思路:三份存储保存输入,一份存储用来交换两数;若2比1小则交换,2比3小则交换,再来2比1小则交换,2比3小则交换;最后输出1、2、3
-- HUMAN RESOURCE MACHINE PROGRAM --
a:
INBOX
COPYTO 0
INBOX
COPYTO 1
INBOX
COPYTO 2
b:
COPYFROM 0
SUB 1
JUMPN c
JUMPZ d
COPYFROM 1
COPYTO 5
COPYFROM 0
COPYTO 1
COPYFROM 5
COPYTO 0
c:
d:
COPYFROM 1
SUB 2
JUMPN e
JUMPZ f
COPYFROM 2
COPYTO 5
COPYFROM 1
COPYTO 2
COPYFROM 5
COPYTO 1
JUMP b
e:
f:
COPYFROM 0
OUTBOX
COPYFROM 1
OUTBOX
COPYFROM 2
OUTBOX
JUMP a
speed challenge
-- HUMAN RESOURCE MACHINE PROGRAM --
a:
b:
c:
d:
e:
f:
INBOX
COPYTO 0
INBOX
COPYTO 1
SUB 0
JUMPN g
JUMP k
g:
INBOX
COPYTO 2
SUB 1
JUMPN h
JUMP i
h:
ADD 1
OUTBOX
COPYFROM 1
OUTBOX
COPYFROM 0
OUTBOX
JUMP d
i:
COPYFROM 1
OUTBOX
COPYFROM 2
SUB 0
JUMPN j
COPYFROM 0
OUTBOX
COPYFROM 2
OUTBOX
JUMP f
j:
COPYFROM 2
OUTBOX
COPYFROM 0
OUTBOX
JUMP e
k:
INBOX
COPYTO 2
SUB 1
JUMPN l
COPYFROM 0
OUTBOX
COPYFROM 1
OUTBOX
COPYFROM 2
OUTBOX
JUMP c
l:
ADD 1
JUMPN p
SUB 0
JUMPN n
m:
COPYFROM 0
OUTBOX
COPYFROM 2
OUTBOX
COPYFROM 1
OUTBOX
JUMP b
n:
o:
ADD 0
OUTBOX
COPYFROM 0
OUTBOX
COPYFROM 1
OUTBOX
JUMP a
p:
SUB 0
JUMPN o
JUMP m