有没有办法让我展示“想象中的”?负数或第 33 个整数之后缺少的任何数字?

发布于 2025-01-11 22:00:21 字数 423 浏览 0 评论 0原文

# This is the original code beginning with the number 777 and I want to show the first 37 numbers.

def Collatz(n):
    i = 1
    while n != 1:
        print(f'{i}. {n}')
        if n & 1:
            n = 3 * n + 1
        else:
            n = n // 2
        i+=1

 
Collatz(777) 

我想让它过去并停在第 37 个数字处。 (这可能意味着这些数字是虚数或负数。)

  1. 2

  2. ....

# This is the original code beginning with the number 777 and I want to show the first 37 numbers.

def Collatz(n):
    i = 1
    while n != 1:
        print(f'{i}. {n}')
        if n & 1:
            n = 3 * n + 1
        else:
            n = n // 2
        i+=1

 
Collatz(777) 

I want it to go past and stop at the 37th number. (which probably means that the numbers are imaginary, or negative.)

  1. 2

  2. ....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

櫻之舞 2025-01-18 22:00:21

没有更多数字可显示。它显示的 n 的最后一个值是 2。然后执行循环体

      n = n // 2

,将 n 绑定到 1。然后循环就结束了,因为 n != 1 不再正确。

如果你继续下去,它就会永远重复 4, 2, 1, 4, 2, 1, 4, 2, 1, ...。

There are no more numbers to show. The last value of n it displays is 2. Then the body of loop executes

      n = n // 2

which binds n to 1. The loop just ends then, because n != 1 is no longer true.

If you continued anyway, it would go on to repeat 4, 2, 1, 4, 2, 1, 4, 2, 1, ... forever.

旧人 2025-01-18 22:00:21
Collatz = 777 
i = 1
while i != 38:
    print(f'{i}. {Collatz}')
    if Collatz & 1:
            Collatz = 3 * Collatz + 1
else:
    Collatz = Collatz // 2
i+=1
Collatz = 777 
i = 1
while i != 38:
    print(f'{i}. {Collatz}')
    if Collatz & 1:
            Collatz = 3 * Collatz + 1
else:
    Collatz = Collatz // 2
i+=1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文