乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?
输入格式:
输入在一行中给出比赛时间T(分钟)。
输出格式:
在一行中输出比赛的结果:乌龟赢输出@_@
,兔子赢输出^_^
,平局则输出-_-
;后跟1空格,再输出胜利者跑完的距离。
题目分析:
这题还是有一定难度,画图分析可能会好一点。我通过画图最终找到的规律是只要掌握了前90分钟的比赛情况就可以了,后面不管过了多久都是在重复前90分钟的比赛情况。
#!/bin/bash
read T
time=$((T % 90))
if [ $time -eq 0 ] || [ $time -eq 30 ] || [ $time -eq 45 ] || [ $time -eq 60 ]; then
distance=$((3 * T))
echo "-_- $distance"
elif [ $time -gt 30 ] && [ $time -lt 45 ] || [ $time -gt 60 ] && [ $time -lt 90 ]; then
distance=$((3 * T))
echo "@_@ $distance"
else
distance=$((T/90 * 270))
if [ $time -gt 0 ] && [ $time -le 10 ]; then
distance=$((distance + 9*time))
elif [ $time -gt 10 ] && [ $time -lt 30 ]; then
distance=$((distance + 90))
elif [ $time -gt 45 ] && [ $time -le 50 ]; then
distance=$((distance + 135 + (time-45)*9))
else
distance=$((distance + 180))
fi
echo "^_^ $distance"
fi
exit 0