자바의 정석에 나오는 연습문제 4-12를 풀어본다. 답이 복잡한데, 나는 다르게 풀어서 공유를 한다. 문제는 아래와 같다.

나는 아래와 같이 3개의 반복문을 중첩해서 풀었다. 해결방법은 여러가지 이다.

public class Ex4_12 {

	public static void main(String[] args) {
		int i, k;
		for(k = 0;k < 3;k++) {
			for(int j = 1;j <= 3;j++) {
				int end = (4 + 3 * k) > 9 ? 9 : 4 + 3 * k;
				for(i = 2 + 3 * k;i < end;i++) {
					System.out.print(i + "*" + j + "=" + i * j + "\t");
				}
				System.out.println(i + "*" + j + "=" + i * j);
			}
			System.out.println();
		}
	}

}

실행결과는 아래와 같다.

아래 소스코드를 참조하면 좀더 이해가 될수 있다.

package chap04;

/*
2*1=2 3*1=3 4*1=4
2*2=4 3*2=6 4*2=8
2*3=6 3*3=9 4*3=12

5*1=5 6*1=6 7*1=7
5*2=10 6*2=12 7*2=14
5*3=15 6*3=18 7*3=21

8*1=8 9*1=9
8*2=16 9*2=18
8*3=24 9*3=27
 */
public class Ex4_12 {

	public static void main(String[] args) {
		int i, k;	// 반복문이 3개를 사용하므로 i, j, k
		for(k = 0;k < 3;k++) {	// k : 0~2 3번 반복
			for(i = 1;i <= 3;i++) {
				int j;
				int end = 4 + 3 * k;	// 종료조건
				if(end > 9)
					end = 9;
				for(j = 2 + 3 * k;j < end;j++) {	// (2,4), (5,7), (8,9)
					System.out.print(j + "*" + i + "=" + j*i + "\t");
				}
				System.out.println(j + "*" + i + "=" + j*i);
			}
			System.out.println();	// 줄 바꾸기
		}

		/*
		2*1=2 3*1=3 4*1=4
		2*2=4 3*2=6 4*2=8
		2*3=6 3*3=9 4*3=12
		*/
//		for(i = 1;i <= 3;i++) {
//			int j;
//			for(j = 2;j < 4;j++) {
//				System.out.print(j + "*" + i + "=" + j*i + "\t");
//			}
//			System.out.println(j + "*" + i + "=" + j*i);
//		}
//		System.out.println();	// 줄 바꾸기
//		/*
//		5*1=5 6*1=6 7*1=7
//		5*2=10 6*2=12 7*2=14
//		5*3=15 6*3=18 7*3=21
//		*/
//		for(i = 1;i <= 3;i++) {
//			int j;
//			for(j = 5;j < 7;j++) {
//				System.out.print(j + "*" + i + "=" + j*i + "\t");
//			}
//			System.out.println(j + "*" + i + "=" + j*i);
//		}
//		System.out.println();
//		/*
//		8*1=8 9*1=9
//		8*2=16 9*2=18
//		8*3=24 9*3=27
//		*/
//		for(i = 1;i <= 3;i++) {
//			int j;
//			for(j = 8;j < 9;j++) {
//				System.out.print(j + "*" + i + "=" + j*i + "\t");
//			}
//			System.out.println(j + "*" + i + "=" + j*i);
//		}
	}

}

여러가지 방법으로 풀 수 있으니 자신의 방법으로 풀어본다...

Posted by 세상을 살아가는 사람
,