-3

我想知道是否有可能创建一个程序来在“小人电脑”中创建斐波那契数列。

该程序将在字母框中输出序列的各个数字。唯一的输入是询问用户希望序列走多高。例如,如果我输入“20”,它只会上升到数字 13。

任何帮助将不胜感激,

艾萨克。

4

2 回答 2

1

来源:链接

        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
于 2016-03-04T09:49:08.800 回答
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。

**虽然我可能有更有效的方法,但是这个方法可以正常工作并且使用的邮箱数量非常少,这使得它非常有效。

于 2016-06-01T21:56:47.003 回答