w, m, n = map(int,input().split())#输入列宽及两个楼号
y = max(m,n)//w + 1#直接目的是求出最大的楼号的所在行数
matrix = []
res = []
for i in range(y):#共遍历 y 行,i=0 → i=(y-1)
temp = [j for j in range(w*i+1, w*(i+1)+1)]
#遍历所有列,如 i=0 时,range(1,w+1),共 w 列
if i%2 == 0:
matrix.append(temp)
else:
temp = temp[::-1]
matrix.append(temp)#从第 0 行开始,偶数行正序,奇数行倒序
if m in temp:
res.append([temp.index(m),i])
if n in temp:
res.append([temp.index(n),i])
#如果在遍历中发现了 m 和 n ,那么返回他们的列数 index( ) 和行数 i 。返回至 res = [[列,行],[列,行]]
print(abs(res[0][1]-res[1][1]) + abs(res[0][0]-res[1][0]))#行数相减+列数相减,取个绝对值,完成
[蓝桥杯] 移动距离 代码解析(Python 实现)
于 2022-03-09 19:57:07 首次发布