模拟 Collat​​z 猜想的代码将 1 显示为偶数

Code to simulate Collatz Conjecture is showing 1 as an even number

我的代码如下

output_even = "Even: "
output_odd = "Odd: "

if varnum % 2 == 0:
 varnum /= 2
 print(output_even, varnum)
 time.sleep(0.1)
elif varnum % 2 != 0:
 varnum *= 3
 varnum += 1
 print(output_odd, varnum)
 time.sleep(0.1)

输出(整数 5):

单数: 16

甚至:8.0

甚至:4.0

甚至:2.0

偶数:1.0

猜想未解

我知道一个不应该是偶数。但由于某种原因,它被列为偶数,如输出所示,原始数字为 5.

编辑:带有代码的完整循环希望能得到额外的说明

        while varnum != 1:
            if varnum % 2 == 0:
                print(output_even, varnum)
                varnum /= 2
                time.sleep(0.1)
            elif varnum % 2 != 0:
                print(output_odd, varnum)
                varnum *= 3
                varnum += 1
                time.sleep(0.1)
        if varnum == 1:
            print("Conjecture not solved")
        else:
            print("Conjecture solved")

不过 2 是偶数。

您将 varnum 除以 2,然后打印该除法的结果。

尝试交换算术和打印操作。