Super


私信TA

用户名:uq_21082902148

访问量:1797

签 名:

等  级
排  名 9198
经  验 1174
参赛次数 0
文章发表 6
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:模拟龟兔赛跑过程即可

注意事项:注意比赛过程逻辑就行了

参考代码:

import java.util.Scanner;


public class Main{


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int v1 = sc.nextInt(), v2 = sc.nextInt(), t = sc.nextInt(), s = sc.nextInt(), l = sc.nextInt();

sc.close();

R rabbit = new R(v1, t, s);

T tortoise = new T(v2);

int time = 0;


while (true) {

rabbit.run();

tortoise.run();

time++;


if (rabbit.sum >= l) {

// 如果兔子跑到了终点

if (tortoise.sum >= l) {

// 乌龟也跑到了终点,就平局

System.out.println("D");

System.out.println(time);

break;

} else {

// 否则兔子赢

System.out.println("R");

System.out.println(time);

break;

}

} else if (tortoise.sum >= l) {

// 兔子没到终点,但乌龟到了,就乌龟赢

System.out.println("T");

System.out.println(time);

break;

}

// 每跑一秒,兔子检测是否要睡觉一次

rabbit.lazy(tortoise.sum);

}

}


}


//兔子对象

class R {

public int sum;

public int t;

public int s;

public int v;

public boolean isSleep;

public int sleetTime;


R(int v, int t, int s) {

this.v = v;

this.t = t;

this.s = s;

this.isSleep = false;

this.sleetTime = 0;

}


public void lazy(int rabbit_sum) {

// 如果自己比乌龟跑的多到一定程度,就睡觉

if (this.sum - rabbit_sum >= this.t) {

if (!this.isSleep) {

// 并且此时没有在睡觉,就睡觉

this.sleetTime = this.s;

this.isSleep = true;

}

}

}


public void run() {

if (this.isSleep) {

this.sleetTime -= 1;

if (this.sleetTime <= 0)

this.isSleep = false;

} else {

this.sum += this.v;

}

}

}


//乌龟对象

class T {

public int sum;

public int v;


T(int v) {

this.v = v;

}


public void run() {

this.sum += this.v;

}

}


 

0.0分

0 人评分

  评论区

  • «
  • »