7-22 龜兔賽跑 (20 分)


烏龜與兔子進行賽跑,跑場是一個矩型跑道,跑道邊可以隨地進行休息。烏龜每分鍾可以前進3米,兔子每分鍾前進9米;兔子嫌烏龜跑得慢,覺得肯定能跑贏烏龜,於是,每跑10分鍾回頭看一下烏龜,若發現自己超過烏龜,就在路邊休息,每次休息30分鍾,否則繼續跑10分鍾;而烏龜非常努力,一直跑,不休息。假定烏龜與兔子在同一起點同一時刻開始起跑,請問T分鍾后烏龜和兔子誰跑得快?

輸入格式:

輸入在一行中給出比賽時間T(分鍾)。

輸出格式:

在一行中輸出比賽的結果:烏龜贏輸出@_@,兔子贏輸出^_^,平局則輸出-_-;后跟1空格,再輸出勝利者跑完的距離。

輸入樣例:

242

輸出樣例:

@_@ 726


想來想去還是用函數解決這個問題,函數圖像是初始是兩條過原點的直線,判斷兔子是否睡覺,睡覺即將兔子的函數圖像沿x軸向右移動30個單位(可能超出時間界限)
兔子: y = 9(x-30n)
烏龜: y = 3x
 1 #include<stdio.h>
 2 int main()        /*  龜兔賽跑 */
 3 {
 4     int i,T,g,t,n;
 5     t=g=n=0;
 6     scanf("%d",&T);
 7     for(i=0;i<=T;  ){
 8         g = 3 *i;
 9         t = 9 *(i-n*30);
10         if(i%10==0 && t>g && i!=0)
11         {
12             i+=30;
13             if(i> T){
14                 g = 3*T;
15                 break;
16             }
17                 
18             n++;
19         }else{
20             i++;
21         }
22         
23     }
24     if(t>g)                            /*兔子贏*/
25     printf("^_^ %d",t);
26     else if(t==g)                    /*平局*/
27     printf("-_- %d",T*3);
28     else                             /*烏龜贏*/
29     printf("@_@ %d",T*3);
30     return 0; 
31 }
32 
33                     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM