[C언어] 차량 번호, 전화 번호 알아맞추기 알고리즘 문제

차량 번호와 전화번호를 구하는 문제입니다.

차량 번호와 전화번호는 4자리 수이며 1에서 9사이의 수입니다.

차량 번호의 첫번째 자리의 수는 마지막 자리의 수보다 2가 큽니다.

차량 번호의 두번째 자리의 수는 세번째 자리의 수보다 큽니다.

차량번호와 전화번호는 순서가 역순입니다.

차량번호와 전화번호의 합은 16456입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 
int main(void) {
    
    int carNumber, phoneNumber;
    int a, b, c, d; 
 
    for (d = 1; d <= 9; d++) {
 
        a = d + 2//첫째 숫자가 마지막 숫자보다 2 큼
 
        for (b = 1; b <= 9; b++) {
 
            //둘째 숫자가 셋째 숫자보다 크므로 second-1에서 1까지 감소하는 반복문 사용            
            for (c = b - 1; c >= 1; c--) {
 
                carNumber = a * 1000 + b * 100 + c * 10 + d;
                phoneNumber = d * 1000 + c * 100 + b * 10 + a;    //전화번호는 자동차 번호의 역순이므로 다음처럼 구함
 
                if (carNumber + phoneNumber == 16456) {    //두 수를 합해서 16456일 때
                    printf("차 번호판: %d%d%d%d\n", a, b, c, d);
                    printf("집 전화번호: %d%d%d%d\n", d, c, b, a);
                 }
            }
        }
    }
}
 
 
cs

 

결과

 

'CS' 카테고리의 다른 글

[C언어] 카프리카 수 구하는 방법  (3) 2020.10.28

댓글

Designed by JB FACTORY