程式員升職記 全過關方法&通俗思路
博主本著能過就過的思想,寫出的解答必然不是最優解,
但是可以給大家提供一點思路來參考,其中17和22的解答整理自網路,特別是17的解答,要比博主的原解答巧妙不少,
1,收發室
模擬程式輸入輸出
– HUMAN RESOURCE MACHINE PROGRAM –
INBOX
OUTBOX
INBOX
OUTBOX
INBOX
OUTBOX
2,繁忙的收發室
使用Jump來對某一段模塊進行回圈
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
OUTBOX
JUMP a
3,復印樓層
也是教學關卡,使用copyfrom獲取地面上的字母數字等
– HUMAN RESOURCE MACHINE PROGRAM –
COPYFROM 4
OUTBOX
COPYFROM 0
OUTBOX
COPYFROM 3
OUTBOX
4,擾碼處理器
將數字分別copyto1,2.然后以2,1的順序copyfrom即可
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
INBOX
COPYTO 1
COPYFROM 1
OUTBOX
COPYFROM 0
OUTBOX
JUMP a
6,多雨之夏
學習使用add
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
INBOX
ADD 0
OUTBOX
JUMP a
7,零撲滅行動
學習使用有條件的jump模塊(jump if zero)
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
JUMPZ b
OUTBOX
JUMP a
8,三倍擴大室
放在地上加3次
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
ADD 0
ADD 0
COPYTO 1
OUTBOX
JUMP a
9,零保護行動
jump用法
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
JUMPZ c
JUMP b
c:
OUTBOX
JUMP a
10,八倍擴大裝置
a----2a----4a----8a,使用三次add
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
ADD 0
COPYTO 1
ADD 1
COPYTO 2
ADD 2
COPYTO 3
COPYFROM 3
OUTBOX
JUMP a
11,加運算走廊
學習使用相減
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
INBOX
COPYTO 1
SUB 0
OUTBOX
COPYFROM 0
SUB 1
OUTBOX
JUMP a
12,四十倍擴大器
先算出8倍的結果,再算出32倍的結果,最后相加
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
ADD 0
COPYTO 1
ADD 1
COPYTO 2
ADD 2
COPYTO 3
ADD 3
COPYTO 4
ADD 4
ADD 3
OUTBOX
JUMP a
13,均衡之間
通過兩數相減來判斷是否相等
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
COPYTO 0
INBOX
SUB 0
JUMPZ c
JUMP b
c:
COPYFROM 0
OUTBOX
JUMP a
14,最大值室
也是通過兩數相減來判斷取哪個值
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
COPYTO 0
INBOX
COPYTO 1
SUB 0
JUMPN c
COPYFROM 1
OUTBOX
JUMP a
c:
COPYFROM 0
OUTBOX
JUMP b
16,絕對正能量
復數通過自減兩次變正
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
JUMPN c
OUTBOX
JUMP a
c:
COPYTO 0
SUB 0
SUB 0
OUTBOX
JUMP b
17,專屬休息室
inbox直接接jump if negative來開始判斷,這關多用jump if negative
– HUMAN RESOURCE MACHINE PROGRAM –
JUMP d
a:
INBOX
JUMPN e
b:
COPYFROM 5
c:
OUTBOX
d:
INBOX
JUMPN a
INBOX
JUMPN b
e:
COPYFROM 4
JUMP c
19,計時器
判斷正負和0,正–輸出,負++輸出,0直接輸出
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
JUMPZ h
JUMPN e
c:
COPYTO 0
OUTBOX
BUMPDN 0
JUMPZ d
JUMP c
d:
OUTBOX
JUMP b
e:
f:
COPYTO 1
OUTBOX
BUMPUP 1
JUMPZ g
JUMP f
g:
h:
OUTBOX
JUMP a
20,乘法研討會
算乘法,比如2*3 就是2+2+2,創建一個計數器3,每次加2后自減1
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
COPYTO 0
COPYTO 2
INBOX
COPYTO 1
COPYFROM 0
JUMPZ e
COPYFROM 1
JUMPZ f
c:
COPYFROM 1
BUMPDN 1
JUMPZ d
COPYFROM 2
ADD 0
COPYTO 2
JUMP c
d:
COPYFROM 2
OUTBOX
JUMP a
e:
f:
COPYFROM 9
OUTBOX
JUMP b
21,零結尾字串
回圈取值做add,直到取到0,輸出add后的值
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
JUMPZ c
ADD 5
COPYTO 5
JUMP b
c:
COPYFROM 5
OUTBOX
COPYFROM 5
SUB 5
COPYTO 5
JUMP a
22,斐波那契參上
先布置地面,準備前兩個數字1,1,然后把inbox值丟在地上,
比如給個7,那地上先取1和7做減法,負值就輸出
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 5
COPYFROM 9
COPYTO 1
COPYTO 2
BUMPUP 2
b:
c:
COPYFROM 2
OUTBOX
COPYFROM 1
COPYTO 0
COPYFROM 2
COPYTO 1
ADD 0
COPYTO 2
SUB 5
JUMPN c
JUMPZ b
JUMP a
23,最小的數字
做減法比較,小就留下
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
COPYTO 1
b:
c:
INBOX
JUMPZ e
SUB 0
JUMPN d
JUMP c
d:
ADD 0
COPYTO 1
COPYTO 0
JUMP b
e:
COPYFROM 1
OUTBOX
JUMP a
24,模運算
回圈用減法,直到減到負數,再把減去的數加上一次
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 0
INBOX
COPYTO 1
COPYFROM 0
b:
SUB 1
JUMPN c
JUMP b
c:
ADD 1
OUTBOX
JUMP a
25,累加的倒計時
準備一個格子sum,每次自減后和sum相加
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
JUMPZ d
COPYTO 0
COPYTO 1
b:
COPYFROM 0
BUMPDN 0
JUMPZ c
ADD 1
COPYTO 1
JUMP b
c:
COPYFROM 1
d:
OUTBOX
JUMP a
26,小試除法
減法,累計減的次數
– HUMAN RESOURCE MACHINE PROGRAM –
a:
COPYFROM 9
COPYTO 8
INBOX
COPYTO 0
INBOX
COPYTO 1
b:
BUMPUP 8
COPYFROM 0
SUB 1
COPYTO 0
JUMPN c
JUMP b
c:
ADD 1
BUMPDN 8
COPYFROM 8
OUTBOX
JUMP a
28,三排序
鋪在地上用冒泡排序做可以
– HUMAN RESOURCE MACHINE PROGRAM –
JUMP c
a:
b:
COPYFROM 0
OUTBOX
COPYFROM 1
OUTBOX
COPYFROM 2
OUTBOX
c:
INBOX
COPYTO 0
INBOX
COPYTO 1
INBOX
COPYTO 2
SUB 0
JUMPN f
d:
COPYFROM 2
SUB 1
JUMPN g
e:
COPYFROM 1
SUB 0
JUMPN h
JUMP a
f:
COPYFROM 2
COPYTO 3
COPYFROM 0
COPYTO 2
COPYFROM 3
COPYTO 0
COPYFROM 2
JUMP d
g:
COPYFROM 2
COPYTO 3
COPYFROM 1
COPYTO 2
COPYFROM 3
COPYTO 1
JUMP e
h:
COPYFROM 1
COPYTO 3
COPYFROM 0
COPYTO 1
COPYFROM 3
COPYTO 0
JUMP b
29,儲存樓層
學習關
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 10
COPYFROM [10]
OUTBOX
JUMP a
30,串儲存樓層
相比前一關,多個自加和if zero判斷,沒什么好講的
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 24
b:
COPYFROM [24]
JUMPZ a
OUTBOX
BUMPUP 24
JUMP b
31,反轉字串
做個序號,先按順序鋪在地上,序號值++
然后按照序號值–,取值
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
JUMPZ c
COPYTO [14]
BUMPUP 14
JUMP b
c:
d:
BUMPDN 14
COPYFROM [14]
OUTBOX
COPYFROM 14
JUMPZ a
JUMP d
32,庫存報告
用相減來判斷兩字母是否相等,做兩個變數,一個控制位置,一個控制數量
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
COPYTO 15
COPYFROM 14
SUB 14
COPYTO 14
COPYTO 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
BUMPUP 19
b:
c:
COPYFROM 15
SUB [19]
JUMPZ d
COPYFROM 19
JUMPZ f
BUMPDN 19
JUMP b
d:
BUMPUP 14
COPYFROM 19
JUMPZ e
BUMPDN 19
JUMP c
e:
f:
COPYFROM 14
OUTBOX
JUMP a
34,洗掉元音字母
沒什么好說的
– HUMAN RESOURCE MACHINE PROGRAM –
a:
b:
INBOX
COPYTO 9
COPYFROM 5
COPYTO 6
BUMPUP 6
BUMPUP 6
BUMPUP 6
BUMPUP 6
c:
COPYFROM 9
SUB [6]
JUMPZ b
COPYFROM 6
JUMPZ d
BUMPDN 6
JUMP c
d:
COPYFROM 9
OUTBOX
JUMP a
35,洗掉重復項
要準備一個變數來保存地上已有的字母的個數
取值的時候,先判斷地上有沒有,沒有的話,先放在地上,再out
有的話,取下一個值
– HUMAN RESOURCE MACHINE PROGRAM –
COPYFROM 14
COPYTO 13
INBOX
COPYTO [14]
COPYFROM 0
OUTBOX
a:
b:
INBOX
COPYTO 12
COPYFROM 14
COPYTO 13
COPYFROM 12
c:
SUB [13]
JUMPZ b
COPYFROM 13
JUMPZ d
BUMPDN 13
COPYFROM 12
JUMP c
d:
BUMPUP 14
COPYFROM 12
COPYTO [14]
OUTBOX
JUMP a
36,字母排序
逐位比較,注意第一個單詞和第二個單詞的長度不一致
– HUMAN RESOURCE MACHINE PROGRAM –
COPYFROM 23
COPYTO 20
COPYTO 21
COPYFROM 24
COPYTO 22
a:
INBOX
JUMPZ b
COPYTO [23]
BUMPUP 23
JUMP a
b:
c:
INBOX
JUMPZ d
COPYTO [24]
BUMPUP 24
JUMP c
d:
e:
COPYFROM [22]
SUB [21]
JUMPN i
COPYFROM [21]
SUB [22]
JUMPN f
BUMPUP 20
BUMPUP 21
SUB 23
JUMPZ g
BUMPUP 22
SUB 24
JUMPZ j
JUMP e
f:
g:
COPYFROM 21
SUB 20
COPYTO 21
h:
SUB 23
JUMPZ l
COPYFROM [21]
OUTBOX
BUMPUP 21
JUMP h
i:
j:
COPYFROM 22
SUB 20
COPYTO 22
k:
SUB 24
JUMPZ m
COPYFROM [22]
OUTBOX
BUMPUP 22
JUMP k
l:
m:
37,資料鏈
類似鏈表
– HUMAN RESOURCE MACHINE PROGRAM –
a:
INBOX
b:
COPYTO 22
JUMPN a
COPYFROM [22]
OUTBOX
BUMPUP 22
COPYFROM [22]
JUMP b
38,數位炸彈
新建兩個變數記錄十位和百位的數
用減法來統計十位和百位的數字
– HUMAN RESOURCE MACHINE PROGRAM –
a:
COPYFROM 9
COPYTO 0
COPYTO 1
INBOX
COPYTO 8
SUB 10
JUMPN g
ADD 10
SUB 11
JUMPN d
b:
COPYFROM 8
SUB 11
JUMPN c
COPYTO 8
BUMPUP 0
JUMP b
c:
COPYFROM 0
OUTBOX
d:
e:
COPYFROM 8
SUB 10
JUMPN f
COPYTO 8
BUMPUP 1
JUMP e
f:
COPYFROM 1
OUTBOX
g:
COPYFROM 8
OUTBOX
JUMP a
39,重設坐標
這道題,本質還是做除法(減法)取余的程序
比如數字是6 ,即 6%4=2,6/4=1,保存在(2,1)
數字10,10%4=2,10/4=2,保存在(2,2)
– HUMAN RESOURCE MACHINE PROGRAM –
a:
COPYFROM 14
COPYTO 12
COPYTO 13
INBOX
b:
SUB 15
COPYTO 0
JUMPN c
BUMPUP 13
COPYFROM 0
JUMP b
c:
ADD 15
COPYTO 12
OUTBOX
COPYFROM 13
OUTBOX
JUMP a
40,質數工廠
這道題我覺得是全游戲最難的問題
大概思路是,先給一個質數2
取出的數回圈對2做減法,如果減到最后不等于0,成為了負數
比如input個3,第一次3-2=1,第二次1-2=-1,那么說明2不是3的質因子,
此時把2+1=3,3-3=0,說明是質因子,把3輸出,這里在回圈體中要準備一個商值,即統計了最終減了幾次,3-3=0,做了一次減法,商即為1
再做判斷,若商值為1(商-1=0)的話,說明這個數已經除到最小了,應該獲取下一個數字了
– HUMAN RESOURCE MACHINE PROGRAM –
COPYFROM 24
COPYTO 2
COPYTO 20
BUMPUP 20
BUMPUP 20
COPYFROM 20
COPYTO 1
a:
INBOX
COPYTO 0
COPYTO 3
COPYFROM 20
COPYTO 1
b:
c:
d:
COPYFROM 3
SUB 1
COPYTO 3
BUMPUP 2
COPYFROM 3
JUMPN f
JUMPZ e
JUMP d
e:
COPYFROM 1
OUTBOX
COPYFROM 2
BUMPDN 2
JUMPZ a
BUMPUP 2
COPYTO 0
COPYTO 3
SUB 2
COPYTO 2
JUMP c
f:
BUMPUP 1
COPYFROM 24
COPYTO 2
COPYFROM 0
COPYTO 3
JUMP b
41,排序樓層
我使用的是冒泡排序法
邏輯不難,但是在游戲中實作真的好麻煩,,
– HUMAN RESOURCE MACHINE PROGRAM –
a:
COPYFROM 24
SUB 24
COPYTO 24
COPYTO 19
COPYTO 20
b:
INBOX
COPYTO [20]
JUMPZ c
BUMPUP 20
JUMP b
c:
COPYFROM 20
COPYTO 19
d:
COPYFROM 24
COPYTO 22
COPYTO 23
BUMPUP 23
SUB 20
e:
COPYFROM [23]
JUMPZ j
COPYFROM [22]
SUB [23]
JUMPN f
COPYFROM [22]
COPYTO 21
COPYFROM [23]
COPYTO [22]
COPYFROM 21
COPYTO [23]
f:
BUMPUP 22
BUMPUP 23
COPYFROM 23
SUB 20
JUMPZ g
JUMP e
g:
BUMPDN 19
JUMPZ h
JUMP d
h:
i:
COPYFROM [24]
JUMPZ a
OUTBOX
BUMPUP 24
JUMP i
j:
COPYFROM 0
OUTBOX
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/239202.html
標籤:其他
上一篇:14 hive安裝
