一列队伍长100米正在行进,传令兵从排尾走到排头,又从排头走到排尾,这列队伍正好前进了100米,已知队伍的速度和传令兵的速度保持不变!问传令兵走了多少米?
解题思路:
1.队伍行进速度,不能为0否则队伍无法行进100米(回答200米的肯定是错了);
2.传令兵行进速度应该是队伍的2倍多,否则传令兵就不能在队伍行进100米时返回到队尾,那就是传令兵在队伍不到200米的时候就到达了队头。(回答300米的肯定是错了)。
正确答案应该是=约233米(算不到整数)
算法如下:
1.假设传令兵速度比,部队速度:传令兵的速度=1:2.285
2.根据上面速度,传令兵从队尾到对头行程=178.2301788米
3.传令兵到达队头后折返,折返速度应该是传令兵速度+队伍行进速度。
4.传令兵终点位置应该在100米处(实际99.39009094米)
5.按照以上得出传令兵走了233.0702667米
VBA源码
Sub Macro1()
'i=队伍排头兵位置,j=传令兵位置,z传令兵行程累计。
Dim i As Single, j As Single, t As Single, z As Single
'假设队伍的行进速度是1m/s
'预设传令兵的速度是t/s
t = 2.285
Range("A1") = "1/" & t
'首先算出传令兵到达队头用多少米
For i = 100 To 200 '队头的行程是从100米处到200米
j = j + t
If j >= i Then
Range("A2") = j
Exit For
End If
Next i
z = j
'再算出折返后到达终点总共走了多少米
For i = i To 200
j = j - t - 1 '折返时传令兵到达队尾的速度应该是 传令兵的速度+队伍的行进速度
z = z + t
Next i
Range("A3") = z '传令兵总里程
Range("A4") = j '传令兵终点位置应该在100米处(可以调整传令兵速率达到接近理想值)
End Sub