题目链接:7-22 龟兔赛跑
一. 题目
1. 题目
2. 输入输出格式
3. 输入输出样例
4. 限制
二、代码
1. 代码实现
#include <stdio.h>
// 递归计算兔子和乌龟跑的路程(可改为while循环)
void rabbitRun(unsigned int minute, unsigned int *rabbit, unsigned int *gui) {
if (*rabbit > *gui) { // 兔子发现自己超过乌龟
// 以30分钟为分界点,兔子每次睡30分钟
if (minute <= 30) {
*gui += minute * 3; // 乌龟跑完剩余时间
minute = 0; // 时间清零
} else {
*gui += 30 * 3; // 乌龟跑30分钟
minute -= 30; // 剩余时间减30分钟
}
} else { // 兔子发现自己没有超过乌龟
// 以10分钟为分界点,兔子每跑10分钟看一次
if (minute <= 10) {
*rabbit += minute * 9;
*gui += minute * 3;
minute = 0; // 时间清零
} else {
*rabbit += 10 * 9;
*gui += 10 * 3;
minute -= 10; // 时间减10分钟
}
}
if (minute != 0) { // 递归,进入下一次判断
rabbitRun(minute, rabbit, gui);
}
}
int main(void) {
unsigned int minute, rabbit, gui;
if (scanf("%d", &minute) != 1) {
return -1;
}
rabbit = gui = 0;
rabbitRun (minute, &rabbit, &gui); // 计算路程
if (rabbit > gui) {
printf ("^_^ %d", rabbit);
} else if (rabbit < gui) {
printf ("@_@ %d", gui);
} else {
printf ("-_- %d", gui);
}
return 0;
}