/**
*
* <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;
}
}