*百度面试题
* 有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。
* 木杆很细,不能同时通过一只蚂蚁。开始 时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,
* 但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。
* 编写程序,求所有蚂蚁都离开木杆 的最小时间和最大时间。
*百度面试题
* 有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。
* 木杆很细,不能同时通过一只蚂蚁。开始 时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,
* 但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。
* 编写程序,求所有蚂蚁都离开木杆 的最小时间和最大时间。
Const AntNum = 5
Const LineLength = 27
Private Sub Command1_Click()
Dim AntPos()
Dim LngMax As Long
Dim LngMin As Long
Dim llCount As Long
AntPos = Array(3, 7, 11, 17, 23)
For llCount = 0 To AntNum - 1
If AntPos(llCount) <= LineLength / 2 Then
If LngMax < AntPos(llCount) Then
LngMax = AntPos(llCount)
End If
If LngMin < LineLength - AntPos(llCount) Then
LngMin = LineLength - AntPos(llCount)
End If
Else
If LngMax < LineLength - AntPos(llCount) Then
LngMax = LineLength - AntPos(llCount)
End If
If LngMin < AntPos(llCount) Then
LngMin = AntPos(llCount)
End If
End If
Next
MsgBox "最快" & LngMax & ";最慢" & LngMin
End Sub
Private Sub Command1_Click()
MsgBox "最快" & Cstr(11-1) & ";最慢" & Csr(27-3)
End Sub
你也好牛,一句话搞定.
有点不明白.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 0 0 0 0
5只蚂蚁同时走.
3 7 11 向左走.等11走完需要10秒.
17 23 向右走.等17走完需要10秒.
怎么会是11秒?
有点不明白.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
0 0 0 0 0
5只蚂蚁同时走.
3 7 11 向左走.等11走完需要10秒.
17 23 向右走.等17走完需要10秒.
怎么会是11秒?
要完全离开杆
如果说要完全离开杆需要11秒?
那最长时间24也要加1.那就是25秒.
这个问题怎么说?