paracompact [1069866] · MS 2021 · 쪽지

2025-05-18 02:16:43
조회수 117

수학 퀴즈(20000덕)

게시글 주소: https://orbi.kr/00073175043

자연수 하나를 저장하고 있는 기계가 있다고 하자. 이 기계에 저장되어 있는 숫자가 무엇인지 볼 수는 없지만, 기계에 달린 버튼을 눌러 숫자를 조작할 수 있다.

기계에는 5개의 버튼과, 숫자 키패드가 있다. 

1번 버튼은 ‘+’ 버튼이며, 버튼을 누르고 원하는 자연수를 입력하면 기계 내부의 숫자는 그 숫자에 고른 수를 더한 값이 된다.

2번 버튼은 ‘-’ 버튼이며, 버튼을 누르고 원하는 자연수를 입력하면 기계 내부의 숫자는 그 숫자에서 고른 수를 뺀 값이 된다. 단, 연산의 결과로 기계 내부의 숫자가 자연수가 아니게 될 경우, 기계는 ‘불가능’ 이라는 메시지를 출력하고, 아무 일도 일어나지 않는다.

3번 버튼은 ‘x', 4번 버튼은 ’/‘ 버튼이다. 비슷하게 기계 내부의 숫자를 고른 자연수로 곱하거나 나누며, ’-‘ 버튼의 경우와 같이 연산의 결과로 기계 내부의 숫자가 자연수가 아니게 될 경우 아무 일도 일어나지 않는다.

5번 버튼은 ’#‘ 버튼으로, 버튼을 누르면 기계 내부의 숫자는 그 숫자의 자릿수를 모두 더한 값이 된다(즉, 123이었다면 1+2+3=6, 372였다면 3+7+2=12).


기계에 원래 저장되어 있는 수가 무엇인지는 모르지만, 2^31-1 = 2,147,483,647보다 작거나 같다고 한다. 버튼을 최소한의 횟수로 눌러서, 기계에 저장되어 있는 수를 1557로 바꾸려고 한다. 이때, 버튼을 눌러야 하는 최소한의 횟수는 몇 회이고, 어떤 버튼들을 눌러야 할까?


(기계에서 나온 결과에 따라 누르는 버튼을 변경할 수 있다. 즉, ’-‘ 버튼을 통해 숫자에서 1000을 빼고, ’불가능‘이 출력되었다면 기계 내의 숫자가 1000 이하라는 정보를 얻고 이를 바탕으로 다른 버튼들을 누르는 것도 가능하다. 또한, 키패드의 숫자를 누르는 것은 버튼을 누르는 것으로 취급하지 않는다.)

rare-카즈하

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.