gpt4 book ai didi

python - 使用 python 打印正整数 n 的 collat​​z 序列,每行一个值在 1 处停止

转载 作者:行者123 更新时间:2023-11-28 16:29:37 25 4
gpt4 key购买 nike

我已经完成了:

def collatz(n):
seq = n
if n == 1:
n = n
while n > 1:
if n % 2 == 0:
n = n // 2
else:
n = 3 * n + 1
print(seq)

当 n = 10 时调用此函数的正确输出:

collatz(10)
10
5
16
8
4
2
1

但唯一打印的数字是 n 本身。

最佳答案

问题是在 while 循环执行后,您只打印在函数开始时设置为 nseq。因此,您只会打印一次值。

您应该在 while 循环内以及开始时打印值(对于第一个 10 打印)。示例 -

def collatz(n):
print(n)
while n > 1:
if n % 2 == 0:
n = n // 2
else:
n = 3 * n + 1
print(n)

演示 -

>>> def collatz(n):
... print(n)
... while n > 1:
... if n % 2 == 0:
... n = n // 2
... else:
... n = 3 * n + 1
... print(n)
...
>>> collatz(10)
10
5
16
8
4
2
1

关于python - 使用 python 打印正整数 n 的 collat​​z 序列,每行一个值在 1 处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33273070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com