传令兵走了多少米

一列队伍长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


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回调函数就像一个传令兵,单片机执行某个操作时,需要通知外部程序进行相应的处理,这个时候就会通过回调函数来实现通知。 举个例子,比如单片机接收到了一个数据包,需要对这个数据包进行解析,然后根据解析结果执行相应的操作。这个时候可以定义一个回调函数,当单片机接收到数据包并解析完毕后,就会调用这个回调函数,让外部程序进行相应的处理。 下面是一个简单的例子,假设单片机接收到了一个数据包,需要解析出其中的数据和校验位,然后将数据传递给外部程序进行处理: ```c // 定义回调函数类型 typedef void (*callback_t)(uint8_t data); // 定义回调函数 void process_data(uint8_t data) { // 处理数据 ... } // 定义解析函数 void parse_packet(callback_t callback) { uint8_t data = receive_data(); uint8_t checksum = receive_checksum(); if (calculate_checksum(data) == checksum) { // 数据合法,调用回调函数 callback(data); } else { // 数据校验错误 ... } } // 在主函数中使用回调函数 int main() { while (true) { parse_packet(process_data); } } ``` 在上面的例子中,定义了一个回调函数类型`callback_t`,然后定义了一个回调函数`process_data`,用来处理数据。在解析函数`parse_packet`中,如果数据校验正确,就会调用传递进来的回调函数`callback`,将解析出来的数据传递给外部程序进行处理。在主函数中,每次循环调用`parse_packet`函数,并传递回调函数`process_data`,使得单片机能够不断接收数据并进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值