乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?
输入格式:
输入在一行中给出比赛时间T(分钟)。
输出格式:
在一行中输出比赛的结果:乌龟赢输出@_@
,兔子赢输出^_^
,平局则输出-_-
;后跟1空格,再输出胜利者跑完的距离。
#include <stdio.h>
int main()
{
//输入分钟
int min;
scanf("%d", &min);
//因为我画了一下示意图,兔子和乌龟90分钟时跑过的路程一样
int x=min/90;//计算有几个90分钟
int y=min%90;//计算还剩下多少分钟
int wugui=min*3;//乌龟的总路程
int tuzi=x*270;//兔子每九十分钟跑了270米
//接下来对剩下来的时间计算兔子的路程
if(y>=0 && y<=10)tuzi=tuzi+y*9;
else if(y>=11 && y<=40)tuzi=tuzi+90;
else if(y>=41 && y<=50)tuzi=tuzi+90+(y-40)*9;
else if(y>=51 && y<=80)tuzi=tuzi+180;
else if(y>=81 && y<90)tuzi=tuzi+180+(y-80)*9;
if(wugui>tuzi){
printf("@_@ %d", wugui);
} else if(wugui<tuzi){
printf("^_^ %d", tuzi);
} else if(wugui==tuzi){
printf("-_- %d", tuzi);
}
return 0;
}
这是值得记录的一题!
按理说:这题应该用循环来来写。
但是:我通过自己仅剩的一点数学思想,把龟和兔的比赛情况(循环)画了出来,简简单单用了一个分支结构就编了出来。
因此我想说的是:
一道题算法有多种,此路实在是走不出的时候,那就尝试别的路,总会有出路的。
生活亦是如此。
另外,多写注释,方便自己和别人理解。
又是信心满满的一天!