Web Developer/JAVA I

4. Nested Loop (중첩반복문) 연습문제 - 주사위, 구구단, 별찍기

sayitditto 2022. 12. 31. 14:37

1. 주사위 문제 

예) 주사위 2개로 할 수 있는 모든 경우의 수

(1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6)  
(2, 1) (2, 2) (2, 3) (2, 4) (2, 5) (2, 6) 
(3, 1) (3, 2) (3, 3) (3, 4) (3, 5) (3, 6) 
(4, 1) (4, 2) (4, 3) (4, 4) (4, 5) (4, 6) 
(5, 1) (5, 2) (5, 3) (5, 4) (5, 5) (5, 6) 
(6, 1) (6, 2) (6, 3) (6, 4) (6, 5) (6, 6) 
for (int i = 1; i <= 6; i++) {
	for (int j = 1; j <= 6; j++) {
    System.out.print ("(" + i + ", " + j + ")")
    }
}

2. 구구단 

예) 2단부터 9단까지 모두 출력

for (int i = 2; i <= 9; i++) {
	for (int j = 1; j <= 9; j++) {
    System.out.println (i + " X " + j + " = " + i*j)
    }
}

3. 별찍기

for (int i = 1; i <= 5; i++) { // 행 1~5
	for (int j = 1; j <= i; j++) { // 별의 개수 (열)
		System.out.print("*");
	}
	System.out.println( ); // 줄바꿈
}	
System.out.println();

4. 역삼각형

for (int i = 5; i >= 1; i--) { // 행 5 4 3 2 1
	for (int j = 0; j < i; j++) { // 0 ~ i 
		System.out.print("*");				
	} System.out.println(); // 줄 바꿈
} 
		
System.out.println();

5. 피라미드

//   ----*     (1)     0 : 빼기 표시 4번하고 별 표시 한번 하고
//	 ---***	   (3)	   1
//	 --*****   (5)	   2
//	 -*******  (7)	   3
//	 ********* (9)	   4
		
for (int i = 0; i < 5; i++) {         // 0 -> 1 -> 2 -> 3 -> 4 행이 돎
	for (int j = 0; j < 4 - i; j++) { // 4 -> 3 -> 2 -> 1 -> 0
		System.out.print(" ");   // 공백 (-) 표시	
	}
	for (int j = 0; j < 2*i + 1; j++) {   // 별찍기 (홀수) n = i
		System.out.print("*");	 	  // 짝수: 2n	홀수: 2n - 1, 2n + 1
	}
	System.out.println();
}