日期:2014-05-20 浏览次数:20782 次
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]; } }