我想知道是否有可能在" Little Man Computer"中创建一个创建Fibonacci序列的程序。
程序将在信箱中输出序列的各个数字。唯一的输入是询问用户它希望序列有多高。例如,如果我输入" 20"它只能达到13号。
非常感谢任何帮助,
艾萨克。
答案 0 :(得分:1)
来源:link
INP
STA N
LOOP LDA A
SUB N
BRP ENDLOOP
LDA A
OUT
LDA B
ADD A
STA ACC
LDA B
STA A
LDA ACC
STA B
BRA LOOP
ENDLOOP HLT
A DAT 0
B DAT 1
N DAT
ACC DAT
答案 1 :(得分:0)
斐波那契系列可以通过以下方式在LMC中打印:
INP
STO n #number of terms
LDA one
OUT
loop LDA fib #THE MAIN LOOP THAT PRINTS FIBONACCI NUMBERS
STO temp2
ADD temp
STO fib
LDA temp2
STO temp
BR check
check LDA n #LOOP TO KEEP A TRACK OF NUMBER OF TERMS
BRZ halt
SUB one
STO n
BRZ halt
LDA fib
OUT
BR loop
halt HLT
n DAT 000
fib DAT 001
temp DAT 001
temp2 DAT 000
one DAT 001
说明:程序首先要求输入n,即要打印的术语数。然后循环开始运行 - 它将打印变量fib的默认值,该值已设置为1. fib的值为存储在另一个变量temp2中,变量temp用于记录fib的先前值,以便正确添加数字并获得正确的序列。随着术语数量的增加,循环控制fib,temp和temp2的值。
程序然后检查是否已打印所需的术语数并减少n的值。如果n = 0,则表示已达到所需的术语数,程序停止。如果n不为零,则循环继续直到n = 0。
**虽然我可能会使用更有效的方法,但是这个方法可以正常工作并使用相当少数量的邮箱,这使得它非常有效。