3 回答
TA贡献1874条经验 获得超12个赞
您必须打印并返回函数collatz(num):
def collatz(number):
"""prints and returns the next number in the Collatz sequence
"""
if number % 2 == 0:
next_collatz_number = number // 2
else:
next_collatz_number = 3 * number + 1
print(next_collatz_number)
return next_collatz_number
x = int(input('print num'))
while True:
x = collatz(x)
if x == 1:
break
TA贡献1880条经验 获得超4个赞
正如其他人的评论所说,你的函数collatz()必须返回一个整数还,被送入collatz()一次。
在您已经完成的工作的基础上,我们可以collatz_sequence(x)重复调用该函数collatz()以获得所需的结果:
def collatz(x):
if x % 2 == 0:
a = x//2
else:
a = 3*x+1
print(a)
return a
def collatz_sequence(x):
print(x)
while x!=1:
x=collatz(x)
这是示例输出:
>>> collatz_sequence(6)
6
3
10
5
16
8
4
2
1
TA贡献2011条经验 获得超2个赞
'''
try:
number = int(input('Enter a number:'))
while number != 1:
number = collatz(number)
except ValueError:
print('Enter a valid integer')
def collatz(num):
if num % 2 == 0:
print(str(num // 2))
return num // 2
else:
print(str(3 * num + 1))
return (3 * num + 1)
'''
在这段代码中,我匹配了它们的约束(整数约束)并返回了值。我在try块中使用了简单的递归来获取所需的输出。
添加回答
举报