蓝桥杯java 基础练习 龟兔赛跑预测

问题描述

  话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。
  然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。

输入格式

  输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)

输出格式

  输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
  第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。

样例输入

10 5 5 2 20

样例输出

D
4

样例输入

10 5 5 1 20

样例输出

R
3

样例输入

10 5 5 3 20

样例输出

T
4

 1 import java.util.Scanner;
 2
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6
 7         while (sc.hasNext()) {
 8             int v1 = sc.nextInt();
 9             int v2 = sc.nextInt();
10             int t = sc.nextInt();
11             int s = sc.nextInt();
12             int l = sc.nextInt();
13
14             int s1 = 0;
15             int s2 = 0;
16             int time = 0;
17             while (s1 < l && s2 < l) {
18                 if (s1 - s2 >= t) {// 兔子停
19                     if ((l - s2) / v2 < s) {// 乌龟先到达终点
20                         time += (l - s2) / v2;
21                         s2 = l;
22                     } else {// 乌龟不能到达终点
23                         time += s;
24                         s2 += v2 * s;
25                     }
26
27                 } else {// 兔子不停
28                     time++;
29                     s1 += v1 * 1;
30                     s2 += v2 * 1;
31                 }
32             }
33             if (s1 > s2) {
34                 System.out.println("R");
35                 System.out.println(time);
36             } else if (s1 < s2) {
37                 System.out.println("T");
38                 System.out.println(time);
39             } else {
40                 System.out.println("D");
41                 System.out.println(time);
42             }
43
44         }
45
46     }
47
48 }  

原文地址:https://www.cnblogs.com/duanyingkui/p/8343328.html

时间: 2024-11-08 22:50:55

蓝桥杯java 基础练习 龟兔赛跑预测的相关文章

蓝桥杯java 基础练习 Huffuman树

问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中.这个过程的费用记为pa + pb. 2. 重复步骤1,直到{pi}中只剩下一个数. 在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用. 本题任务:对于给定的一个数列

蓝桥杯_基础训练_龟兔赛跑预测

#include <iostream> using namespace std; int main() { int time=0,v1,v2,t,s,l; while(cin>>v1>>v2>>t>>s>>l) { bool gui=false,tu=false; //gui为真则龟到达终点,tu为真表示兔到达终点 int guil=0,tul=0; //guil表示龟当前的路程,tul表示兔当前时间的路程 time=0; //初始化

蓝桥杯:基础练习 十进制转十六进制【JAVA算法实现】

题目描述 给出一个非负整数,将它表示成十六进制的形式. 输入格式 输入包含一个非负整数a,表示要转换的数.0<=a<=2147483647 输出格式 输出这个整数的16进制表示 实数输出的问题如果没有特别说明,舍入都是按四舍五入进行. 样例输入 30 样例输出 1E import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(Sy

蓝桥杯:基础练习 01字串【JAVA算法实现】

题目描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串. 输入格式 本试题没有输入. 输出格式 输出32行,按从小到大的顺序每行一个长度为5的01串. 样例输出 00000 00001 00010 00011 00100 <以下部分省略> public class Main { public static void main(String[] args) {

蓝桥杯:基础练习 字母图形【JAVA算法实现】

题目描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形. 输入格式 输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数. 输出格式 输出n行,每个m个字符,为你的图形. 样例输入 5 7 样例输出 ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 数据规模与约定 1 <= n, m <= 26

蓝桥杯:基础练习 杨辉三角形【JAVA算法实现】

题目描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数. 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加. 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行. 输入格式 输入包含一个数n. 输出格式 输出杨辉三角形的前n行.每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔.请不要在前面输出多余的空格. 样例输入 4 样例输出 1 1 1 1 2 1 1 3 3 1 public class Ma

基础练习 龟兔赛跑预测

问题描述 话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点--喜欢赛跑.于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑.他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病--骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒.对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致--它们不到终点决不停止. 然而有些比赛相当漫长,全程观看会耗费大量时间

第五届蓝桥杯Java组大学校园选拔真题_n级台阶

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: 蓝桥杯赛题 * 作    者:   彭俊豪 * 完成日期:   2016   年 04月 01日 * 版 本 号:      001 * 对任务及求解方法的描述部分 * 问题描述: 有n级台阶.从地面(第0级)出发,首先连续的上台阶,上到不超过第n级的某一个位置后再连续的下台阶,直到回到地面.若每次

【蓝桥杯】基础练习 十六进制转十进制

基础练习 十六进制转十进制 时间限制:1.0s   内存限制:512.0MB 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示. 样例输入 FFFF 样例输出 65535 无语...现在也没明白这样为什么不对 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using