package playground;


import java.util.Scanner;


public class Multi_dimen3 {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.println("출발지점을 입력해주십시요");

int start = scan.nextInt();

while(start > 5 || start < 1) { System.out.println("옳지 않은 입력입니다."); start = scan.nextInt(); }

System.out.println("도착지점을 입력해주십시요");

int end = scan.nextInt();

while(end > 5 || end < 1) { System.out.println("옳지 않은 입력입니다."); end = scan.nextInt(); }

System.out.println("가는 횟수를 입력해주십시요");

int n = scan.nextInt();

while(n < 1) { System.out.println("옳지 않은 입력입니다."); n = scan.nextInt(); }


//그래프 행렬(Graph-Matrix)

int[][] graph = {

{0,1,0,1,1},

{1,0,1,0,1},

{0,1,0,1,1},

{1,0,1,0,1},

{1,1,1,1,0}

};

//(임시) 계산후 그래프 행렬

int[][] m_graph = {

{0,0,0,0,0},

{0,0,0,0,0},

{0,0,0,0,0},

{0,0,0,0,0},

{0,0,0,0,0}

};

//그래프 n번 제곱 

for(int m = 1; m < n; m++){

//계산부

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

for (int k = 0; k < 5; k++) {

m_graph[i][j] += graph[i][k] * graph[k][j];

}

}

}

}

//제곱 끝

//start에서 시작하여 end에 도달

//자바의 제로베이스로 인하여 start, end 각각 1씩 빼서 출력

System.out.println("가는 방법의 수는 "+m_graph[start-1][end-1] +"입니다.");

}

}





데헷