擅长:python、mysql、java
<p><strong>更新了</strong>以下是一种更简化的方法。我还确保用户不会输入重复的过道编号,并且过道数量不会超过商店中的过道数量。最重要的是,计算步骤大大简化</p>
<pre><code>totalAisles = int(input("Enter the number of aisles in supermarket: "))
aisle = []
visitAisle = None
while len(aisle) < totalAisles:
visitAisle = int(input("Enter the aisle number to visit: "))
if visitAisle == 0:
if aisle:
break
else:
print("Not visiting any aisle")
break
if visitAisle not in aisle and visitAisle != 0:
aisle.append(visitAisle)
else:
print("You already entered that aisle number. Pick another one.")
#to find the best aisle to place the basket
if aisle:
highestAisle = max(aisle)
lowestAisle = min(aisle)
basket = (highestAisle + lowestAisle) //2
#traveling back and forth from the basket to each isle
minimumDistance = 0
for visitAisle in aisle:
minimumDistance += abs(basket - visitAisle) * 2
print(f"\nThe minimum distance is {minimumDistance} units if you park the cart at aisle {basket}")
</code></pre>