藍橋杯-龜兔賽跑預測(Java)

龜的時間就是l/v2

兔的時間是多方面因素決定的,可以假設它每跑m米就休息s秒,m=烏龜超過它的距離+t

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int v1 = scanner.nextInt();
        int v2 = scanner.nextInt();
        int t = scanner.nextInt();
        int s = scanner.nextInt();
        int l = scanner.nextInt();
        scanner.close();

        System.out.println(getResult(v1, v2, t, s, l));
    }

    private static String getResult(int vRabbit, int vTurtle, int leadDist, int timeRest, int raceLength){
        int timeTurtle = raceLength / vTurtle;

        int timeRabbit = 0;
        int remainLength = raceLength;
        int turtlePassDist = 0;

        while (true){
            int t = (int)(Math.ceil((1.f * turtlePassDist + leadDist) / (vRabbit - vTurtle)));
            int currLength = t * vRabbit;
            if(currLength >= remainLength){
                timeRabbit += (int)(Math.ceil(remainLength * 1.f / vRabbit));
                break;
            } else{
                timeRabbit += t;
                remainLength -= currLength;
            }
            turtlePassDist = timeRest * vTurtle - (raceLength - remainLength - timeRabbit * vTurtle);
            timeRabbit += timeRest;
        }

        if(timeRabbit == timeTurtle){
            return "D" + "\n" + timeRabbit;
        } else if(timeRabbit < timeTurtle){
            return "R" + "\n" + timeRabbit;
        }
        return "T" + "\n" + timeTurtle;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章