如何实现每行仅输出10个元素的Hailstone序列Python程序?
冰雹序列格式调整解决方案
首先确保能正确生成冰雹序列,然后通过计数器追踪元素位置来实现每行10个元素、制表符分隔的输出要求。以下是调整后的完整代码:
n = int(input("请输入正整数: ")) hailstone = [] current_num = n # 生成完整的冰雹序列 while current_num != 1: hailstone.append(current_num) if current_num % 2 == 0: current_num = current_num // 2 else: current_num = 3 * current_num + 1 hailstone.append(1) # 最后加入终止值1 # 按格式输出序列 for index, num in enumerate(hailstone): # 每10个元素换行,其余用制表符分隔 print(num, end="\t" if (index + 1) % 10 != 0 else "\n") # 处理最后一行不足10个元素的情况,补换行 if len(hailstone) % 10 != 0: print()
关键逻辑说明
- 先把整个序列存入列表,便于统一遍历和计数
- 用
enumerate获取元素的索引位置,通过(index+1) %10判断是否到达每行末尾:- 未到末尾时,用
end="\t"设置输出后接制表符 - 到达末尾时,用
end="\n"设置输出后换行
- 未到末尾时,用
- 最后判断序列长度是否为10的倍数,若不是则手动补换行,避免最后一行内容停留在控制台行中间
内容的提问来源于stack exchange,提问作者Jenna J
相关产品推荐
相关产品推荐

