第七届(16年)蓝桥杯java B组决赛真题 愤怒的小鸟 解题思路

愤怒小鸟


X星球愤怒的小鸟喜欢撞火车!


一根平直的铁轨上两火车间相距 1000 米
两火车 (不妨称A和B) 以时速 10米/秒 相对行驶。


愤怒的小鸟从A车出发,时速50米/秒,撞向B车,
然后返回去撞A车,再返回去撞B车,如此往复....
两火车在相距1米处停车。


问:这期间愤怒的小鸟撞 B 车多少次?


注意:需要提交的是一个整数(表示撞B车的次数),不要填写任何其它内容。

public class one {
    static int count  = 0;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        atb(1000);
        System.out.println(count);
    }
    public static void atb(float s) {
        //小鸟从a飞到b
        s=s-10*(s/30);
        if(s <= 1) {
            return;
        }
        else {
            count++;    //撞a的次数
            bta(s);
        }
    }
    public static void bta(float s) {
        //小鸟从b飞到a
        s=s-10*(s/30);
        if(s <= 1) {
            return;
        }
        else {
            atb(s);
        }
    }
}
View Code

解题思路:小鸟在第一秒从A车飞向迎来的B车,撞上后又从B车飞向迎来的A的,直至两车间的距离相距1m,通过列出等式可以得出第一次小鸟从a到b之后的距离公式S2=s-s/3

原文地址:https://www.cnblogs.com/liqiujiong/p/10542516.html