題目內容: 下圖為國內主要城市之間的公路里程: 你的程式要讀入這樣的一張表,然後,根據輸入的兩個城市的名稱,給出這兩個城市之間的里程。 註意:任何兩個城市之間的里程都已經給出,不需要計算經第三地中轉。 註意:你並不需要去錄入上圖的數據,數據是在程式輸入中給的。 輸入格式: 首先,你會讀到若幹個城市的 ...
題目內容:
下圖為國內主要城市之間的公路里程:
你的程式要讀入這樣的一張表,然後,根據輸入的兩個城市的名稱,給出這兩個城市之間的里程。
註意:任何兩個城市之間的里程都已經給出,不需要計算經第三地中轉。
註意:你並不需要去錄入上圖的數據,數據是在程式輸入中給的。
輸入格式:
首先,你會讀到若幹個城市的名字。每個名字都只是一個英文單詞,中間不含空格或其他符號。當讀到名字為“###”(三個#號)時,表示城市名字輸入結束,###並不是一個城市的名字。如果記讀到的城市名字的數量為n。
然後,你會讀到nxn的一個整數矩陣。第一行的每一個數字,表示上述城市名單中第一個城市依次到另一個城市之間的里程。表中同一個城市之間的里程為0。
最後,你會讀到兩個城市的名字。
輸出格式:
輸出這兩個城市之間的距離。
輸入樣例:
Hagzou Hugzou Jigxng ###
0 1108 708
1108 0 994
708 994 0
Hagzou Jigxng
輸出樣例:
708
時間限制:500ms記憶體限制:32000kb
import java.util.ArrayList;//引入容器 import java.util.Scanner;//引入掃描函數 //主類 public class Main{ public static void main(String[] args) { City city = new City();//新建City類對象city city.setDistance();//調用setDistance方法設置距離 city.getDistance();//調用getDistance方法輸出距離 } } //City類 class City{ private ArrayList<String> city;//容器,存儲城市名 private int distance[][];//二維數組,存儲輸入的距離矩陣 Scanner in = new Scanner(System.in); //構造函數,初始化 public City() { city=new ArrayList<String>(); String ctName=in.next();//輸入城市名 //把城市名添加進容器 while(true) { if(ctName.equals("###")) { break;//如果輸入的是“###”,停止添加城市名 } city.add(ctName);//添加 ctName=in.next();//輸入 } //若輸入n個城市,建立n*n大小距離矩陣 distance=new int[city.size()][city.size()]; } //初始化距離矩陣 public void setDistance() { int mile=0; for(int i=0;i<distance.length;i++) {//行 for(int j=0;j<distance[i].length;j++) {//列 mile=in.nextInt();//輸入距離 distance[i][j]=mile;//初始化對應坐標距離矩陣 } } } //得到兩城市之間的距離 public void getDistance() { //輸入起始城市名,並獲取其在容器中的坐標 int start=city.indexOf(in.next()); //輸入終點城市名,並獲取其在容器中的坐標 int end=city.indexOf(in.next()); //根據起始和終點坐標在距離矩陣中找到兩城市之間的距離 System.out.println(distance[start][end]); } }