7-39 龟兔赛跑

乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?

输入格式:

输入在一行中给出比赛时间T(分钟)。

输出格式:

在一行中输出比赛的结果:乌龟赢输出@_@,兔子赢输出^_^,平局则输出-_-;后跟1空格,再输出胜利者跑完的距离。

输入样例:

242

输出样例:

@_@ 726

切入点: 兔子每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑。这意味着乌龟能休息的条件是当前时间能够整除10时,并且兔子的距离大于乌龟。

进入:兔子休息的时候乌龟还在跑时①假如剩余时间大于30,则乌龟接着跑30分钟,兔子不动,当前时间过去了30分钟,因此当前时间要加30,然后回到开头又一分钟一分钟的加,直到又满足条件“当前时间能够整除10时,并且兔子的距离大于乌龟。”②假如剩余时间小于30,乌龟跑完剩余时间,兔子不动

#include <stdio.h>

int main()
{
    int T;
    scanf("%d",&T);
    
    int turtle_distance=0;    //turtle_distance是乌龟跑的距离
    int rabbit_distance=0;    //rabbit_distance是兔子跑的距离 
    for(int i=1;i<=T;i++){    //i用来叠加时间,直到i=T
        turtle_distance=turtle_distance+3;    //乌龟每分钟跑3米
        rabbit_distance=rabbit_distance+9;    //兔子每分钟跑9米
        if(i%10==0&&rabbit_distance>turtle_distance){
            if(T-i>=30){//所剩时间如果大于30分钟,让乌龟跑三十分钟,兔子不动 
                turtle_distance=turtle_distance+90;
                i+=30;
            }else{ // 所剩时间如果小于30分钟,让龟龟跑剩下的时间,兔兔不动 
                turtle_distance=turtle_distance+3*(T-i);
                break;
            }
        }
    }
    if(rabbit_distance>turtle_distance)
        printf("^_^ %d",rabbit_distance);
    else if(rabbit_distance==turtle_distance)
        printf("-_- %d",rabbit_distance);
    else
        printf("@_@ %d",turtle_distance);
    
    return 0;
}

 

原始数字: 123456789 替换后数字: 567891234 暗语列表: 01: 桃花运 02: 银杏 03: 青梅竹马 04: 一心一意 05: 二话不说 06: 三生有幸 07: 四季如春 08: 五颜六色 09: 六畜兴旺 10: 七上八下 11: 八仙过海 12: 九九归一 13: 十全十美 14: 十拿九稳 15: 百花齐放 16: 千方百计 17: 万紫千红 18: 一箭双雕 19: 二虎相斗 20: 三贤三胜 21: 四海一家 22: 五谷丰登 23: 六根清净 24: 七星高照 25: 八面玲珑 26: 九死一生 27: 十年生死两茫茫 28: 百感交集 29: 千夫所指 30: 万箭穿心 31: 一路顺风 32: 二龙戏珠 33: 三位一体 34: 四通八达 35: 五大三粗 36: 六合一波 37: 七仙女 38: 八仙过海各显神通 39: 九龙壁 40: 四面楚歌 41: 守株待兔 42: 虎背熊腰 43: 龟兔赛跑 44: 鸡犬不宁 45: 狼狈为奸 46: 青出于蓝 47: 白眉赤眼 48: 金蝉脱壳 49: 翻山越岭 50: 掌上明珠 51: 问心无愧 52: 风雨同舟 53: 明眸善睐 54: 点石成金 55: 神仙难测 56: 大智若愚 57: 一心向善 58: 为人民服务 59: 只争朝夕 60: 勤能补拙 61: 洛阳纸贵 62: 南辕北辙 63: 好事多磨 64: 一曲肝肠断 65: 一针见血 66: 三人成虎 67: 肆无忌惮 68: 方逢时艰 69: 毕恭毕敬 70: 潜龙勿用 71: 知音难觅 72: 切莫错过 73: 信口开河 74: 言传不如身教 75: 祸从天降 76: 水滴石穿 77: 一击即中 78: 四面出击 79: 鼓足干劲 80: 滴水之恩,涌泉相报 代码实现如下: message = "有萝卜14.19元、白菜05.58元、芹菜29.60元、韭菜78.26元、蒜87.26元" num_dict = {&#39;5&#39;: &#39;1&#39;, &#39;6&#39;: &#39;2&#39;, &#39;7&#39;: &#39;3&#39;, &#39;8&#39;: &#39;4&#39;, &#39;9&#39;: &#39;5&#39;, &#39;1&#39;: &#39;6&#39;, &#39;2&#39;: &#39;7&#39;, &#39;3&#39;: &#39;8&#39;, &#39;4&#39;: &#39;9&#39;} original_nums = &#39;&#39; for c in message: if c.isdigit(): original_nums += num_dict[c] elif c == &#39;.&#39;: original_nums += &#39;.&#39; print(original_nums) # 输出:129143969.8743.78 # 提取出每个菜品的价格 prices = original_nums.split(&#39;.&#39;) print(prices) # 输出:[&#39;129143969&#39;, &#39;8743&#39;, &#39;78&#39;] # 还原回原始数字 for i in range(len(prices)): original_price = &#39;&#39; for c in prices[i]: original_price += num_dict[c] prices[i] = original_price print(prices) # 输出:[&#39;234517689&#39;, &#39;4196&#39;, &#39;43&#39;] # 将还原后的数字用逗号链接成一个字符串 new_message = &#39;,&#39;.join(prices) print(new_message) # 输出:234517689,4196,43
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wanwanxiaobai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值