Graphing 图形计算器逻辑测试错误

Graphing 图形计算器逻辑测试错误,graphing,calculator,collatz,Graphing,Calculator,Collatz,我试着制作以下程序,一开始效果很好 Label 1 Input "n=", Q If Q≤0 ...Then Goto 1 Else Label 2 ((Q-2int(Q/2))(3Q+1)+(1-Q+2int(Q/2))(Q/2))->Q Display Q If Q≠1 Then Goto 2 Else Goto 1 这应该做的是我输入一个起始数字,如果它是偶数,它就做Q/2。如果为奇数,则执行3Q+1,并将结果存储回Q。这是Collatz猜想,它指出,如果这个迭代被执行,不管你从哪

我试着制作以下程序,一开始效果很好

Label 1
Input "n=", Q
If Q≤0
...Then
Goto 1
Else
Label 2
((Q-2int(Q/2))(3Q+1)+(1-Q+2int(Q/2))(Q/2))->Q
Display Q
If Q≠1
Then
Goto 2
Else
Goto 1
这应该做的是我输入一个起始数字,如果它是偶数,它就做
Q/2
。如果为奇数,则执行
3Q+1
,并将结果存储回
Q
。这是Collatz猜想,它指出,如果这个迭代被执行,不管你从哪个数字开始,它总是会降到1。有些起始数字需要更多的步骤才能达到,而有些则需要更少的步骤

问题是: 有时,在程序经过大量迭代之后,它会显示错误,当我按debug时,它会将光标移到
中的
Q
上,如果Q≠1


你知道为什么会这样吗?谢谢。

大多数人在做这个谜题时必须克服的障碍是巨大数字造成的溢出——我认为它发生在IIRC 23左右的某个数字上。可能是这样的,但我不明白为什么它会把你的光标移到Q上。

sry但是代码中的空格会一直被去掉,将代码包装在标签中,以防止解析器将其格式化为文本(并将其流到一起)。或者,将每行缩进4个空格。但是我更喜欢
标签。