Encoding 如何对斐波那契序列LMC进行编码?
我想知道是否有可能创建一个程序,在“小人计算机”中创建斐波那契序列 程序将在字母框中输出序列的各个数字。唯一的输入是询问用户它希望序列达到多高。例如,如果我输入“20”,它只会上升到数字13 任何帮助都将不胜感激 以撒 资料来源:Encoding 如何对斐波那契序列LMC进行编码?,encoding,sequence,fibonacci,little-man-computer,Encoding,Sequence,Fibonacci,Little Man Computer,我想知道是否有可能创建一个程序,在“小人计算机”中创建斐波那契序列 程序将在字母框中输出序列的各个数字。唯一的输入是询问用户它希望序列达到多高。例如,如果我输入“20”,它只会上升到数字13 任何帮助都将不胜感激 以撒 资料来源: 斐波那契系列可通过以下方式在LMC中打印: INP STO n #number of terms LDA one OUT loop LDA fib #THE MAIN LOOP THAT P
斐波那契系列可通过以下方式在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
**虽然可能会有更有效的方法,但这一方法工作正常,使用的邮箱数量较少,这使得它非常有效
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