Loops 我如何在小人计算机中为斐波那契序列生成循环?
我在Little Man Computer中使用以下代码来输出前10个斐波那契序列项,但是我需要对此进行循环,这将允许我控制想要输出的迭代次数Loops 我如何在小人计算机中为斐波那契序列生成循环?,loops,numbers,sequence,little-man-computer,Loops,Numbers,Sequence,Little Man Computer,我在Little Man Computer中使用以下代码来输出前10个斐波那契序列项,但是我需要对此进行循环,这将允许我控制想要输出的迭代次数 根据我的理解,我想我必须输入3个数字——其中两个是第一个斐波那契序列项,第三个是我想要输出的迭代次数。但我怎样才能做到这一点呢 斐波那契数列可以以下列方式在LMC中打印: INP STA numOne OUT INP STA numTwo OUT
根据我的理解,我想我必须输入3个数字——其中两个是第一个斐波那契序列项,第三个是我想要输出的迭代次数。但我怎样才能做到这一点呢 斐波那契数列可以以下列方式在LMC中打印:
INP
STA numOne
OUT
INP
STA numTwo
OUT
LDA numOne
ADD numTwo
STA numThree
OUT
LDA numTwo
ADD numThree
STA numFour
OUT
LDA numThree
ADD numFour
STA numFive
OUT
LDA numFour
ADD numFive
STA numSix
OUT
LDA numFive
ADD numSix
STA numSeven
OUT
LDA numSix
ADD numSeven
STA numEight
OUT
LDA numSeven
ADD numEight
STA numNine
OUT
LDA numEight
ADD numNine
STA numTen
OUT
numOne dat
numTwo dat
numThree dat
numFour dat
numFive dat
numSix dat
numSeven dat
numEight dat
numNine dat
numTen dat
说明:程序首先要求输入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