• 龟兔赛跑


    龟兔赛跑 

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

    输入格式:

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

    输出格式:

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

    输入样例:

    242
    

    输出样例:@_@ 726


    1)实验代码

    #include<stdio.h>
    int main()
    {
     int T,i;
     int rabbitT=0;    //兔子跑的时间
     scanf("%d",&T);
     if(T<10)    //时间小于10分钟,兔子赢
     {
      printf("^_^ %d ",T*9);
      return 0;
     }
     rabbitT=10;
     for(i=10;i<=T;i++)  //从第10分钟开始
     {
      if(i%10==0)    //每10分钟回头,比较
      {
       if(rabbitT*9>i*3 && T-i>=30)    //兔子跑的距离大于乌龟 ,剩余时间不小于30分钟
       {
        i=i+29;    //不是i=i+30,因为for循环中还有个i++
       }
       if(rabbitT*9>i*3 && T-i<30)    // 兔子跑的距离大于乌龟 ,剩余时间小于30分钟
       {
        i=T;
        break;
       }
       if(rabbitT*9<=i*3 && T-i>=10)  //兔子跑的距离小于乌龟,剩余时间不小于10分钟,兔子真正跑的时间+10
       {
        rabbitT=rabbitT+10;
        i=i+9;
       }
       if(rabbitT*9<=i*3 && T-i<10)  //兔子跑的距离小于乌龟,剩余时间小于10分钟,兔子真正跑的时间+T-i
       {
        rabbitT=rabbitT+(T-i);
        i=T;
        break;
       }
      }
     }
     if(rabbitT*9>i*3)
      printf("^_^ %d ",rabbitT*9);
     if(rabbitT*9<i*3)
         printf("@_@ %d ",i*3);
     if(rabbitT*9==i*3)
         printf("-_- %d ",i*3);
         return 0;
    }

    
    

    2)设计思路

    
    

    1.定义变量

    
    

    2.时间小于10分钟,兔子赢

    
    

    3.for循环,兔子跑的时间从第10分钟开始

    
    

    4.每10分钟回头,比较

    
    

    5.兔子跑的距离大于乌龟 ,剩余时间不小于30分钟,i=i+29

    
    

    6.兔子跑的距离大于乌龟 ,剩余时间小于30分钟,i=T,跳出循环

    
    

    7.兔子跑的距离小于乌龟 ,剩余时间不小于10分钟,兔子真正跑的时间+10,i=i+9

    
    

    8.兔子跑的距离小于乌龟 ,剩余时间小于10分钟,兔子真正跑的时间+T-i,i=T,跳出循环

    
    

    9.最后比较兔子和乌龟跑的距离,输出答案

    
    

    3)本题调试过程碰到问题及解决办法

    
    

    逻辑有点不清,漏了条件 

  • 相关阅读:
    CodeForces 659F Polycarp and Hay
    CodeForces 713C Sonya and Problem Wihtout a Legend
    CodeForces 712D Memory and Scores
    CodeForces 689E Mike and Geometry Problem
    CodeForces 675D Tree Construction
    CodeForces 671A Recycling Bottles
    CodeForces 667C Reberland Linguistics
    CodeForces 672D Robin Hood
    CodeForces 675E Trains and Statistic
    CodeForces 676D Theseus and labyrinth
  • 原文地址:https://www.cnblogs.com/xirfly/p/10094165.html
Copyright © 2020-2023  润新知