a + b = 14 를 만족하는 한 자리 자연수 a, b를 모두 구하시오.
5+9= 14
6+8= 14
7+7= 14
public class For_Test12 {
public static void main(String args[]) {
int a, b;
for ( a = 1; a <= 7; a++ ) {
for ( b = 9; b >= 7; b-- ) {
if ( ( a + b ) == 14 ) {
System.out.println( a+"+"+b+"= 14");
}
}
}
}
}
a
b
는 각각 1의 자리
이고 더하면 14
가 되는 수입니다.
첫 번째 for문
에서는 피감수 a
를 1
에서 7
까지 1씩 증가
시킵니다.
두 번째 for문
에서는 감수 b
를 9
에서 7
까지 1씩 감소
시킵니다.
※ 왜 a 변수는 1~7이고 b 변수는 9~7 까지인가요?
- 처음에는 변수 b도 똑같이 1~9로 잡았는데요.
그러다 보니 a와 b가 중복되는 경우가 생겼습니다.
그 후 저는 a가 크면 b는 작아진다는 a와 b의 반비례관계가 성립한다는 사실을 알게 되었고
14의 반절인 7까지만 값을 잡으면 불필요한 계산을 줄일 수 있다는 사실을 깨달았습니다.
b가 9부터 시작하는 이유는 문제에도 나와있지만
1의 자리를 구하고 있기 때문에 14가 아닌 9부터 감소하게 한 것입니다.
만약 a + b == 14
라면 a+"+"+b+"= 14
의 형식으로 출력하여 a + b = 14
의 형태로 출력되게 합니다.
5+9= 14
6+8= 14
7+7= 14