zoukankan      html  css  js  c++  java
  • 龟兔赛跑

    龟兔赛跑 

    乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进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)本题调试过程碰到问题及解决办法

    
    

    逻辑有点不清,漏了条件 

  • 相关阅读:
    java设计模式之建造者模式
    java设计模式之工厂模式
    Java并发—简介与线程创建
    Java基础—反射(转载)
    Eclipse中svn操作
    js常用方法总结
    Oracle学习笔记—常用函数
    Oracle学习笔记—connect、resource和dba三种权限(转载)
    JavaWeb—拦截器Interceptor
    JavaWeb—监听器Listener
  • 原文地址:https://www.cnblogs.com/xirfly/p/10094165.html
Copyright © 2011-2022 走看看