用python写一个搭积木建金字塔的程序

例如我手上有6块积木,能建3层高度的金字塔,底层是3块积木,第二层是2块积木,第一层就是1块积木,这样的话金字塔高度就是3,以此类推,如果手上有15块积木,就能建5层高度,但是,另外一种情况,我手上有20块积木,6-5-4-3-2,最高一层因为积木缺失无法建成,所以也只有5层,请问我随便输入一个积木数量,用python怎样计算出高度,要用while loop

你题目的解答代码如下:

n = int(input("输入一个积木数量:"))
s = 1
j = 0
t = 0
while n!=0:
    if n>0:
        j+=1
        n-=j
        t+=1
    else:
        n+=s
        s+=1
h = t+1-s
print(f"高度:{h}层")
for i in range(s,t+1):
    print(" "*(t-i) +"* "*(i))

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

垒积木的条件就是下层比上层积木块数多,所以可以假设积木是从最上面开始垒,最省积木的方式就是最上面是1块积木,下一层是2块,再下层是3块。。。以此类推,所以直到第n层没有n块积木的时候,就是所能垒的最高高度了。
程序实现就简单了:

n = int(input())
i = 0
while n>i:
    i+=1
    n-=i
print(i)

题目意思是能用多少算多少

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632