[구구단의 합 - Easy]


/**
 * 
 * <PRE>
 * [실습] 구구단의 합
 * 
 * 구구단 1단부터 X단까지의 모든 합을 구한다.
 * X단의 정보는 메소드의 파라미터로 전달한다.
 * X가 9보다 크면, 9로 간주한다. X가 1보다 작다면, 1로 간주한다.
 * 만약, 파라미터 X가 ‘3’ 이라면, 1단부터 3단까지의 모든 값의 합이다.
 * 만약, 파라미터 X가 ‘15’ 라면, 1단부터 9단까지의 모든 값의 합이다.
 * 단, 각 단 자체 곱의 값은 제외한다.
 * - 2단에서는 2 X 2 의 결과는 구구단의 합 최종 결과에 포함하지 않는다.
 * - 8단에서는 8 X 8 의 결과는 구구단의 합 최종 결과에 포함하지 않는다.
 * 
 * 
 * [실행 결과]
 * 
 * 입력값: 1 / 결과: 44
 * 입력값: 2 / 결과: 130
 * 입력값: 3 / 결과: 256
 * </PRE>
 *
 * @author 74765
 * @version 1.0
 */
public class Test02 {

	private static final String result = "입력값 : %d / 결과 : %d";

	public static void main(String[] args) {

		// 시작시간 기록
		long startTime = System.currentTimeMillis();

		// STEP 1. TEST 데이터 준비
		int maxDan = 2;

		// STEP 2. 실행
		int sum = GugudanSum(maxDan);
		System.out.println(String.format(result, maxDan, sum));

		// 종료시간 기록
		long endTime = System.currentTimeMillis() - startTime;
		System.out.println("소요시간 : " + endTime + "ms.");

	}

	/**
	 * <PRE>
	 * 구구단의 합 결과를 구한다
	 * </PRE>
	 * 
	 * @param maxDan : 계산할 단수
	 * @return result : 구구단의 합
	 */
	private static int GugudanSum(int maxDan) {
		int result = 0;

		// STEP 1. maxDan 정련
		maxDan = maxDan < 1 ? 1 : maxDan > 9 ? 9 : maxDan;

		// STEP 2. 구구단 계산
		for (int x = 1; x <= maxDan; x++) {
			for (int y = 1; y <= 9; y++) {
				if (x != y) {
					result += x * y;
				}
			}
		}
		// STEP 3. 결과반환
		return result;
	}
}