冰雹数列(Hailstone sequence),也叫做'3n+1”问题,指的是对于任意一个正整数,若它为偶数,则把它除以2,若为奇数,则把它乘以3加1,得到一个新的数,再按照同样的方法进行处理,最终会得到一个数值为1的序列。
可以使用Python编写这个程序,代码示例如下:
# 定义函数hailstone,求出一个数的冰雹数列
def hailstone(num):
sequence = [num] # 将num加入数列
while num > 1:
if num % 2 == 0:
num = num // 2
else:
num = num * 3 + 1
sequence.append(num) # 将新的num加入数列
return sequence
# 输出一个数的冰雹数列
print(hailstone(10)) # 输出[10, 5, 16, 8, 4, 2, 1]
# 输出一定范围内的所有数的冰雹数列
for i in range(1, 11):
print(hailstone(i)) # 输出1~10的冰雹数列
程序首先定义了一个名为hailstone的函数,用来求出一个数的冰雹数列。函数中使用了一个while循环,对这个数进行操作,得到一个新的数,并将其加入数列中。最后返回求得的数列。
通过调用该函数,可以输出任意一个数的冰雹数列,也可以输出一定范围内所有数的冰雹数列。在示例代码中,我们分别输出了数字10的冰雹数列,以及数字1~10的冰雹数列。