乌龟

用C语言解“龟兔赛跑”题

老子叫甜甜 提交于 2020-03-04 18:50:03
7-22 龟兔赛跑 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出@ @,兔子赢输出 _ ,平局则输出- -;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 思路 因为兔子是先跑十分钟在看乌龟的情况再决定是否休息,所以需要于乌龟比较。通过分析可知,前十分钟:兔子跑90m,乌龟跑30m,然后兔子休息三十分钟;前四十分钟,兔子90m(休息三十分钟),乌龟跑120m;前五十分钟,兔子跑180m,乌龟跑150m,然后兔子休息三十分钟;前八十分钟,兔子跑180m(休息六十分钟),乌龟跑240m;前九十分钟,兔子跑270m,乌龟跑270m;…可看出九十分钟一个周期,兔子只会在0-10,40-50,80-90这三个时间段跑,而乌龟却一直在跑,则可由此判断谁是胜利者 代码 # include <stdio.h> int main ( ) { int T ;

PTA 龟兔赛跑 (20分)

青春壹個敷衍的年華 提交于 2020-02-04 19:12:18
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出@ @,兔子赢输出 _ ,平局则输出- -;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 # include <iostream> using namespace std ; int main ( ) { int T , rabbit = 0 , turtle = 0 , flag = 0 ; cin >> T ; for ( int i = 0 ; i < T / 10 ; ++ i ) { turtle + = 30 ; if ( flag == 0 ) { rabbit + = 90 ; if ( rabbit > turtle ) flag = 3 ; } else flag -- ; } turtle + = 3 * ( T % 10 ) ; if ( flag == 0 )

7-22 龟兔赛跑 (20分)

巧了我就是萌 提交于 2020-01-21 03:31:56
乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出 @_@ ,兔子赢输出 ^_^ ,平局则输出 -_- ;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 #include <stdio.h> #define V_T 3 #define V_R 9 #define S 0 #define R 1 int main(void) { int s_t = 0; int s_r = 0; int status = R; int T = 0; scanf("%d", &T); // 计时器 int timer = 10; int minutes = 0; while(minutes < T) { if(status == R) { if(timer == 0) { if(s_r > s_t) { //休息 status = S; timer = 30; }

7-22 龟兔赛跑 (20分)

不羁岁月 提交于 2020-01-04 15:49:04
7-22 龟兔赛跑 (20分) 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出@ @,兔子赢输出 _ ,平局则输出- -;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 参考代码 #include < stdio . h > int main ( ) { int w , t , time ; scanf ( "%d" , & time ) ; int ti = 0 , tmp = 0 , cnt = 0 ; while ( ti <= time ) { if ( tmp == 10 && w < t ) { tmp = 0 ; if ( ti + 30 <= time ) { cnt += 30 ; ti += 30 ; } else { cnt += ( time - ti ) ; ti += ( time - ti ) ; } } if

龟兔赛跑问题

六眼飞鱼酱① 提交于 2020-01-03 08:51:30
题目 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出 @_@ ,兔子赢输出 ^_^ ,平局则输出 -_- ;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726思路:反复思考了很长时间,虽然一开始的思路很清晰,但是一开始感到无从下手,在不断的完善中,终于完全写正确了。写完后看了网上其他人的算法,感叹每个人的思考方式都各具特色,可能我的是比较笨拙的方法吧,仅供大家参考。 分析发现,其实时间t只在最初的十分钟内,逐次递增,以后都是十分钟或者30分钟的增加,且10分钟之后t总是整数。这就带来判断的一个问题,当输入的T为非整数时,怎样进行判断。T为非整数,可分为两种情况:第一,它以休息结束。第二,它以龟兔跑步中结束。这需要加入判别变量进行判断。而且需要注意的是,时间小于10分钟与不小于10分钟面临的情况十不同的。(一开始省略的这个判断,很苦恼为什么一直不对

新龟兔赛跑

允我心安 提交于 2020-01-03 08:51:03
Description 大家还记得龟兔赛跑的故事吗?兔子输给了乌龟,但是他一直都不服气,想要一雪前耻。他把他的族人全部都带来了海边,要与乌龟一族一比高下。嚣张的兔子们,给了乌龟一个月的时间来准备这场”世纪大战 ” 。如临大敌的乌龟们每天没日没夜的锻炼,在高帅富Bearboy的帮助下,乌龟的速度再也不是以前那样了,完全有能力和兔子抗衡。为了比赛的结果更权威,这次兔子提出,要N只兔子和N只乌龟在同一条跑道上同时进行比赛。 嚣张的兔子让乌龟们自己在跑道上选择自己起跑的起点(不一定是跑道的0点),同时让乌龟为这N只兔子规定他们的起点。跑道长度保证所有的超越都可以完成,比赛积分计算如下: 1:x只乌龟同时超过一只兔子 乌龟一族 加x 分 2:x只兔子同时超过一只乌龟 兔子一族 加x分 3:x只乌龟同时超过y只兔子 乌龟一族 加x*y分 4:x只兔子同时超过y只乌龟 兔子一族 加x*y分 问最后谁的分最高。 Input 输入有多组测试数据。每组测试数据第一行是一个整数N(1<=N<=100000),表示兔子和乌龟的数量(都为N)。接下来有2*N行数据,每行有两个数字Si , Vi(Si表示第i只乌龟/兔子的初始位置(跑道起点为0),Vi(1<=Vi<=100000)表示第i只乌龟/兔子的匀速前行的速度)第2行到N+1行是N只兔子的信息,第N+2行到2*N+1行是N只乌龟的信息。

java多线程模拟龟兔赛跑

删除回忆录丶 提交于 2019-12-23 17:40:42
让乌龟和兔子在同一个赛道从1开始跑到100,看看谁更快. 1 public class Racer implements Runnable{ 2 private static String winner;//胜利者 3 4 @Override 5 public void run() { 6 //赛道 7 for (int step = 1; step <= 100; step++) { 8 /* if(Thread.currentThread().getName().equals("兔子")&&step%50==0){ 9 try { 10 Thread.sleep(200); 11 } catch (InterruptedException e) { 12 e.printStackTrace(); 13 } 14 }*/ 15 System.out.println(Thread.currentThread().getName()+"---->走了"+step+"步"); 16 17 boolean flag= GameOver(step); 18 if(flag){ 19 break; 20 } 21 22 } 23 } 24 25 private boolean GameOver(int step) { 26 if(winner!=null){ 27 return true;

龟兔赛跑 (20分)

…衆ロ難τιáo~ 提交于 2019-12-21 05:43:12
龟兔赛跑 (20分) 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟)。 输出格式: 在一行中输出比赛的结果:乌龟赢输出@ @,兔子赢输出 _ ,平局则输出- -;后跟1空格,再输出胜利者跑完的距离。 输入样例: 242 输出样例: @_@ 726 代码: # include <stdio.h> int main ( ) { int t , a = 0 , b = 0 , i ; scanf ( "%d" , & t ) ; for ( i = 1 ; i <= t ; i ++ ) { a = a + 3 ; b = b + 9 ; if ( i % 10 == 0 ) { if ( b > a ) { for ( int j = 0 ; j < 30 ; j ++ ) { a = a + 3 ; i = i + 1 ; if ( i == t ) break ; } } } } if ( a > b ) printf ( "@

数据收集 脑筋急转弯试题 - www.zxgj.cn

半城伤御伤魂 提交于 2019-12-04 07:49:56
什么人每天靠运气赚钱? 说有一只乌龟,一天路过一个火车站,它正想爬过去的时候,突然开过来一辆火车,乌龟由于躲闪不及,被火车压了过去,等火车过去了以后,乌龟发现自己没有死,你猜是为什么呢? 圣诞夜,圣诞老公公放进袜子的第一件东西是什么? 幼儿园的老师拿出一包糖,准备分给小朋友们吃,如果一人分一块,便多出一块,一人分两块,又欠两块,究竟最少有几个小朋友?几块糖? 榴莲和地心引力有什么关系? 什么鸡没有翅膀? 李红每次赛跑都是倒数第一,这次却是正数第一,为什么? 青春痘长在哪里,你比较不担心? 小虎的机车既没有锁,也没有违规,但是仍然被锁上了,为什么? 一点一横长,一撇到南洋,上面像个丑,下面一张口。 有一段100公尺长的铁轨上面每隔1公分放一条横木,请问共有几条横木? 小红和妈妈去买熟鸡蛋,为什么别人不卖给她? 3个人3天用3桶水,9个人9天用几桶水? 体育比赛要求运动员“更高、更快、更强”,要“向前进”,但有一种比赛只能往后推,这是什么比赛? 油漆工的徒弟叫啥? 电视对人类最大的贡献是什么? 你爸爸和你妈妈生了个儿子,他既不是你哥哥又不是你弟弟,他是谁? 孔子与孟子有何不同? 有一个眼睛瞎了的人,走到山崖边上,突然停住了,然后往回走 一年四季都盛开的花是什么花? https://www.zxgj.cn/g/naojinjizhuanwan 来源: https://www

C语言I博客作业06

守給你的承諾、 提交于 2019-12-03 07:58:34
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 C语言I作业06 我在这个课程的目标是 熟悉了解并熟练使用逻辑运算 这个作业在那个具体方面帮助我实现目标 PT的填空题填空并与课本的结合 参考文献 百度 1.PTA实验作业 1.1 计算火车运行时间 本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。 输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内. 1.1.1数据处理 数据表达: 定义了h1, m1, h2, m2,h, m。六个整形变量分别代表输入第一个数的小时位分钟位,第二个数的小时位和分钟位。和最后运算结果的小时数和分钟数。 数据处理:因为输入的4个数所以分钟数就等于小时数除100取整就可以得出,然后用if语句判断分钟数是否要借位。最终返回结果值h和m。 1.1.2实验代码截图 1.1.3 造测试数据 输入数据 输出数据 0930 1520 06:50 1420 1853 04:33 1222 1333 01:11 1111 2222 11:11 1.1.4 PTA提交列表及说明 部分正确 分钟数没有借位,后加入if语句进行借位。 部分正确 重复提交了一遍,查看错误原因。 部分正确 输出的小时数没有两位有效数字