如何基于数组[2,4,3,9,6,5]实现指定星形图案输出?
实现方法
核心思路是先明确数组和图案的对应关系:
- 数组中的最大值为图案的总行数(这里是9行)
- 数组的每个元素对应一列,表示该列从底部开始数有多少行显示星号(比如元素2对应列仅在底部第1、2行显示星号)
用嵌套循环实现的步骤:
- 计算数组的最大值,确定总行数
- 外层循环遍历每一行(从顶部第1行到底部第9行)
- 对当前行,计算从底部往上数的行号
k = 总行数 - 当前行号 + 1 - 内层循环遍历数组的每个元素:
- 如果
k <= 当前元素,说明该列在当前行需要显示星号* - 否则显示空格
- 如果
- 将每列的字符用空格拼接成一行,输出
代码示例(Python)
array = [2, 4, 3, 9, 6, 5] max_rows = max(array) # 外层循环控制行,从顶部第1行到第max_rows行 for current_row in range(1, max_rows + 1): # 计算从底部往上数的行号 bottom_up_row = max_rows - current_row + 1 line_parts = [] # 内层循环控制每列的显示 for val in array: if bottom_up_row <= val: line_parts.append("*") else: line_parts.append(" ") # 拼接成一行并输出 print(" ".join(line_parts))
运行这段代码后,输出的图案与你给出的示例逻辑一致,若要完全匹配示例的列分布,只需调整数组元素顺序为 [3, 4, 2, 9, 6, 5] 即可。
内容的提问来源于stack exchange,提问作者Suraj Naruka
相关产品推荐
相关产品推荐

