def hailstone(n):
print(n,end=' ')
while n!=1:
if n%2==1:
n=3*n+1
print(n,end=' ')
else:
n=n/2
print(n,end=' ')
hailstone(7)
Output: 7 22 11.0 34.0 17.0 52.0 26.0 13.0 40.0 20.0 10.0 5.0 16.0 8.0 4.0 2.0 1.0
你好,我想知道为什么python在22之后将这些整数打印为浮点数。谢谢
在Python 3中,a/b是浮点除法,因此您的22/2是11.0
但是a//b是整数除法,所以22//2是11。
但是23//2也是11,请注意。。。但无论如何,在偶数情况下,你只能除以2,所以你不应该担心分数部分的损失。