Python圣诞树开发:如何通过最后一行星星数计算树的高度?
从最后一行星星数计算圣诞树高度的方法及代码修改
先拆解你现有代码的逻辑:每一行的星星数公式是 2*i - 1(i从1到你输入的树高度值),最后一行对应的i就是输入的树高度,因此最后一行星星数 n = 2*h - 1(h为树的高度)。反过来推导高度的公式就是 h = (n + 1) // 2,注意:输入的最后一行星星数必须是奇数,因为圣诞树每一行的星星数都是奇数,最后一行也不例外。
以下是修改后的完整代码:
# 输入最后一行的星星数量 eingabe = input("Bitte geben Sie die Anzahl der Sterne in der letzten Zeile ein: ") eingabe = int(eingabe) # 校验输入有效性 if eingabe % 2 == 0: print("Fehler: Die Anzahl der Sterne in der letzten Zeile muss ungerade sein!") else: # 计算对应的树高度 baum_hoehe = (eingabe + 1) // 2 stern = "*" # 生成并打印每一行的圣诞树内容 for i in range(1, baum_hoehe + 1): zeile = (2 * i - 1) * stern print(zeile.center(100))
关键说明
- 增加了输入校验:如果用户输入偶数,直接提示错误,避免生成不符合逻辑的圣诞树
- 用整数除法
//确保计算出的高度是整数,符合实际需求 - 保留了你原代码中居中打印的逻辑,保证圣诞树的展示效果
内容的提问来源于stack exchange,提问作者st3i-n
相关产品推荐
相关产品推荐

