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] +"입니다.");
}
}
데헷
댓글 0