program gggg
real a(23,23)
integer i,j
integer l1,l2,l3,l4,l5,l6,l7 !关于循环次数可以数出最少为六步到达,因此为了防止步数虽然多但是距离短的情况,尝试10步以内到
real:: dis=1000 !距离储存的空间,初始值设置为一个比最短路径大的值即可
integer l11,l22,l33,l44,l55,l66,l77
!
!以下为计算两点之间距离的数组
!
do i=1,23
do j=1,23
a(i,j)=inf
end do
end do
do i=1,23
a(i,i)=0
end do
forall(i=15:23,j=15:23,abs(i-j)==1)
a(i,j)=5
end forall
a(23,20)=5
a(20,23)=5
a(23,18)=5
a(18,23)=5
a(23,16)=5
a(16,23)=5
a(22,15)=5
a(15,22)=5
a(13,22)=5
a(22,13)=5
a(10,20)=5
a(20,10)=5
a(18,6)=5
a(6,18)=5
a(3,16)=5
a(16,3)=5
forall(i=1:14,j=1:14,abs(i-j)==1)
a(i,j)=5.24
end forall
a(1,2)=2.62
a(2,1)=2.62
a(1,14)=2.62
a(14,1)=2.62
a(6,7)=2.62
a(7,6)=2.62
a(7,8)=2.62
a(8,7)=2.62
a(19,9)=3.66
a(9,19)=3.66
a(8,19)=3.66
a(19,8)=3.66
a(11,21)=3.66
a(21,11)=3.66
a(12,21)=3.66
a(21,12)=3.66
a(14,15)=3.66
a(15,14)=3.66
a(2,15)=3.66
a(15,2)=3.66
a(17,4)=3.66
a(4,17)=3.66
a(5,17)=3.66
a(17,5)=3.66
!
!对数组的设置结束,以上为所用到的距离的数组,这个数组相当于表示节点之间的距离,非相邻节点均设值为inf注意,不要implicit none,否则没有inf这个值没有定义
!
do l1=1,