![Python编程300例:快速构建可执行高质量代码](https://wfqqreader-1252317822.image.myqcloud.com/cover/209/36862209/b_36862209.jpg)
上QQ阅读APP看书,第一时间看更新
例15 飞行棋
1.问题描述
一维棋盘,起点在棋盘的最左侧,终点在棋盘的最右侧,棋盘上有几个位置和其他位置相连,如果A与B相连,但连接是单向的,即当棋子落在位置A时,可以选择不投骰子,直接移动棋子从A到B,但不能从B移动到A。给定这个棋盘的长度(length)和位置的相连情况(connections),用六面的骰子(点数1~6),问最少需要投几次才能到达终点。
2.问题示例
输入length=10和connections=[[2,10]],输出为1,可以0->2(投骰子),2->10(直接相连)。输入length=15和connections=[[2,8],[6,9]],输出为2,因为可以0->6(投骰子),6->9(直接相连),9->15(投骰子)。
3.代码实现
![](https://epubservercos.yuewen.com/E3EF07/19549640501519606/epubprivate/OEBPS/Images/Figure-P29_24211.jpg?sign=1738827649-LQjT5FqP0syZZTQmsKb12Q2QEMHWUwrQ-0-9ab23dfad00c89427446e74a68d3a5ce)
4.运行结果
棋盘长度:15
连接:[[2,8],[6,9]]
最小需要:2