关于#算法#的问题:问题:Excel超人来挑战砌墙游戏 new

砌墙游戏

1.先从最矮的墙开始砌,直到砖块用完
2.加砌后的墙不能高于原来比它高的墙

  • 原问题在这里:https://ask.csdn.net/questions/7809168
    (关于#算法#的问题:问题:Excel超人来挑战砌墙游戏)

  • 吐槽一下,CSDN很cd,超过7天就自动结题,而结题了就无法再编辑和回答问题了。
    不知道这个自动结题是出于何种考虑?简直和应届生就业率有异曲同工之妙!

  • 这个问题用phthon还是容易解决的,就是一个递归问题,和“汉诺塔”相比稍有些难度。
  • 这个问题来自现实中一个问题:流调派单。因为各组处理能力不同,已有的工作量也不同,所以在有新单子时,已有大单的组不再派新单,先给小单的组;但给后的数量不能超过原来大单的组,否则给大单组。

#!python3

Walls=[1,2,2,3,5]
Bricks=20
print('\n第',0,'级a:',Walls,Bricks)

while True:
    for i in range(len(Walls)-1):
        if Bricks==0:
            break
        while Walls[i]<Walls[i+1] and Bricks>0:
            k=i
            while k>=0 and Bricks>0:
                Walls[k]=Walls[k]+1         #本级加砖
                Bricks=Bricks-1
                print('第',i,'级b:',Walls,Bricks)
                k=k-1
                 
    if Bricks==0:
        break

    Walls[i+1]=Walls[i+1] +1       #末级加砖
    i=i+1
    Bricks=Bricks-1
    print('\n第',i,'级c:',Walls,Bricks)