我想知道是否有可能创建一个程序来在“小人电脑”中创建斐波那契数列。
该程序将在字母框中输出序列的各个数字。唯一的输入是询问用户希望序列走多高。例如,如果我输入“20”,它只会上升到数字 13。
任何帮助将不胜感激,
艾萨克。
我想知道是否有可能创建一个程序来在“小人电脑”中创建斐波那契数列。
该程序将在字母框中输出序列的各个数字。唯一的输入是询问用户希望序列走多高。例如,如果我输入“20”,它只会上升到数字 13。
任何帮助将不胜感激,
艾萨克。
来源:链接
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
斐波那契数列可以通过以下方式在 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。
**虽然我可能有更有效的方法,但是这个方法可以正常工作并且使用的邮箱数量非常少,这使得它非常有效。