格式化

廣告

廣告2

2012年9月22日 星期六

[JAVA教學範例] d985: Gran Turismo 5

【java參考解題答案】d985: Gran Turismo 5


內容 :
 最近,
 學姊籌錢買了一片 Gran Turismo 5 回家做賽車夢,
 又另外買了 G27 方向盤,
 但在賽車場上的表現始終不如人意。
   
 "車,不是這麼開的。"
 說完爸爸接過了方向盤,
 將記錄一次又一次的刷新。
 給你每一圈的時間紀錄,
 請算出 Best Lap 與平均時間。
 我一定要成為車神! 

輸入說明 :
 第一行有一個數字 N (0 < N ≤ 10)
 代表接下來有 N 組測試資料
 每組測試資料第一行有一個數字 M (0 < M ≤ 100)
 接著有 M 行資料
 每行兩個數字 A, B (0 ≤ A, B ≤ 60)
 代表該圈所花費時間為 A 分 B 秒 

輸出說明 :
 Track X:
 Best Lap: X minute(s) X second(s).
 Average: X minute(s) X second(s). 
 Average 為整數,小數部份無條件捨去
 詳請參考範例測資 

範例輸入 : 
3
4
1 54
2 02
1 58
1 50
3
1 23
1 42
1 37
5
3 00
2 56
3 04
2 50
3 01

範例輸出 :
Track 1:
Best Lap: 1 minute(s) 50 second(s).
Average: 1 minute(s) 56 second(s).

Track 2:
Best Lap: 1 minute(s) 23 second(s).
Average: 1 minute(s) 34 second(s).

Track 3:
Best Lap: 2 minute(s) 50 second(s).
Average: 2 minute(s) 58 second(s).

提示 :
出處 :學姊 (管理:example)

參考解答:

import java.io.IOException;
import java.util.Scanner;


 
public class eee { 
    @SuppressWarnings("resource")
 public static void main(String[] args) throws IOException { 

     Scanner read = new Scanner(System.in);
     int sum;
     int loop;
     int best_min=0;
     int best_sec=0;
     int avg_min=0;
     int avg_sec=0;
     int tmp_min;
     int tmp_sec;
     int[][] best_loop;
     int[][] avg_loop;
          
     sum=read.nextInt();
     best_loop=new int[sum][2];
     avg_loop=new int[sum][2];
     
     for(int q=1; q<=sum; q++)
     {
         loop=read.nextInt();
         
      for(int w=1; w<=loop; w++)
      {
       tmp_min=read.nextInt();
       tmp_sec=read.nextInt();
       if(w==1) {best_min=tmp_min; best_sec=tmp_sec;}
       if(tmp_min<best_min) {best_min=tmp_min; best_sec=tmp_sec;}
       if(tmp_min==best_min&&tmp_sec<best_sec) {best_sec=tmp_sec;}
       if(tmp_min<best_min&&tmp_sec==best_sec) {best_min=tmp_min;}
       avg_min+=tmp_min;
       avg_sec+=tmp_sec;
      }
      avg_min*=60;
      avg_sec+=avg_min;
      avg_sec/=loop;
      avg_min=0;
      while(avg_sec>=60)
      {
       avg_sec-=60;
       avg_min++;
      }
      best_loop[q-1][0]=best_min;
      best_loop[q-1][1]=best_sec;
      avg_loop[q-1][0]=avg_min;
      avg_loop[q-1][1]=avg_sec;
         best_min=0;
         best_sec=0;
         avg_min=0;
         avg_sec=0;
     }
     
     for(int qq=1; qq<=sum; qq++)
     {
      System.out.printf("Track %d:\n",qq);
      System.out.printf("Best Lap: %d minute(s) %d second(s).\n",best_loop[qq-1][0],best_loop[qq-1][1]);
      System.out.printf("Average: %d minute(s) %d second(s).\n",avg_loop[qq-1][0],avg_loop[qq-1][1]);
     }
    }
}