图形计算器逻辑测试错误

时间:2010-11-03 04:55:35

标签: 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。这是Collat​​z猜想,它指出如果继续这个迭代,无论你开始使用什么数字,它总是会降到1.一些起始数字需要更多步骤才能达到,而有些则需要更少的步骤。

问题:

有时在程序经历大量迭代后,它会显示ERROR,当我按下debug时,它会将光标移到Q中的if Q≠1上。

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

1 个答案:

答案 0 :(得分:0)

大多数人在做这个难题时必须克服的障碍是由大量数字引起的溢出 - 我认为它发生在23岁左右的某个地方,即IIRC。可能是这种情况,但我不明白为什么它会把你的光标放在Q上。