日期:2014-05-20 浏览次数:20944 次
public class Test{
public static void main(String[] args) throws Exception{
int[][] m1={
{0, 7, 4, 9},
{7, 0, 5, 6},
{4, 5, 0, 2},
{9, 6, 2, 0}
};
int[][] m2={
{1},
{0, 0, 1},
{0, 1},
{0, 0, 0, 4}
};
for(int i=0;i<=2;i++){
System.out.println("第"+i+"人去过的地方与第"+(i+1)+"人去过的地方之间的距离是:");
System.out.println(getDistance(m1,m2,i));
}
}
/*求第i个人去过的地方与第i+1个人去过的地方之间的距离
* @param matrixC 各个地方之间的距离
* @param matrixX 每个人去过什么地方
* @param i 第i个人。
*/
public static int getDistance(int[][] matrixC,int[][] matrixX,int i){
return getDistance(matrixC,matrixX,i,i+1);
}
/*求第i个人去过的地方与第k个人去过的地方之间的距离
* @param matrixC 各个地方之间的距离
* @param matrixX 每个人去过什么地方
* @param i 第i个人。
* @param k 第k个人。
*/
public static int getDistance(int[][] matrixC,int[][] matrixX,int i,int k){
if(i>matrixX.length-1||i<0||k>matrixX.length-1||k<0) return -1;
int targetI=0,targetI1=0;
/*求i去过什么地方
*/
for(int j=0;j<matrixX[i].length;j++){
if(matrixX[i][j]==1){
targetI=j;
break;
}
}
/*求j去过什么地方
*/
for(int j=0;j<matrixX[k].length;j++){
if(matrixX[i+1][j]==1){
targetI1=j;
break;
}
}
return matrixC[targetI][targetI1];
}
}