java_查找里程

題目內容:java

下圖爲國內主要城市之間的公路里程:數組

 

 

你的程序要讀入這樣的一張表,而後,根據輸入的兩個城市的名稱,給出這兩個城市之間的里程。函數

 

注意:任何兩個城市之間的里程都已經給出,不須要計算經第三地中轉。spa

注意:你並不須要去錄入上圖的數據,數據是在程序輸入中給的。對象

 

輸入格式:blog

首先,你會讀到若干個城市的名字。每一個名字都只是一個英文單詞,中間不含空格或其餘符號。當讀到名字爲「###」(三個#號)時,表示城市名字輸入結束,###並非一個城市的名字。若是記讀到的城市名字的數量爲n。內存

而後,你會讀到nxn的一個整數矩陣。第一行的每個數字,表示上述城市名單中第一個城市依次到另外一個城市之間的里程。表中同一個城市之間的里程爲0。ci

最後,你會讀到兩個城市的名字。get

 

輸出格式:it

輸出這兩個城市之間的距離。

 

輸入樣例:

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]);
	}
}
相關文章
相關標籤/搜索