程序员升职记第二关不难,但是你可能在苦苦思索一个既能不超过3行,又能不超过25步的解法,其实这样的关卡是不存在的,而且后面有其它关卡也需要行数成就和步数成就分别完成。
下面介绍行数和步数分别完成的方法。
这是第二关行数最少的解法
一共搬运10个方块,行数最少的这种方法,需要30步。
最关键的就是多了跳转这个步骤,
如图,跳转前和跳转后之间计算了一步。
总步数计算方法:
30=(2+1)*10
现在在中间多加一个输入输出,每个循环执行4个步骤
执行代码步数25步,比最短行数的少了5步。
少的5步是因为少了5次跳转。
计算方法为:
(4+1)*5=25
进一步缩短步骤数的话,可以这样做,让一个循环内的代码很长。
理论上应该是20行输入输出+1行跳转,这里程序可能有bug,导致24行输入输出才能达到最优。
最短步骤数20