问一个vb计数循环的问题:一球从100米高度自由落下,每次落地后又反跳回原高度的一半,再落下.

1个回答

  • a = 100

    For i = 1 To 9

    a = a / 2

    s = s + 2 * a

    Next i

    s = s + 100

    t = a / 2

    s为第10次落地经过的米数,结果趋于200,次数越多越接近200

    再加上第一次的100米,即趋于300

    分析

    先把第一次落地另看,因为只有下降100米,作为a

    然后是循环的关键,要上升50米,再下降50米,这是一次循环,100/2*2即a/2再*2

    再上升25米,再下降25米,这是第二次循环,50/2*2即a/2再*2

    如此9次循环,就是小球第10次落地

    则计算出s总路程

    计算完毕后 这时a为第10次落地,即用最后一次a的值再/2就是第10次弹起的高度.

    也可以简化为

    a = 100

    For i = 1 To 9

    s = s + a

    a = a / 2

    Next i

    s = s + 100