砌墙游戏
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)