만약 800진법일 경우 0~9 까지의 숫자는 표현할수 있겠지만 그 이후의 숫자는 어떻게 표현하나요? 16진법으로 나타낼때 0에서 F 로 표현하는 것처럼, 800진법에서 10이상의 수를 표현해야 할 방법이 있어야 할 것 같은데요. 알파벳을 이용한다고 해도 Z(35)이후의 수는 표현할 방법이 없는데요. 이에 대한 정의가 없다면 정확한 답을 구할 수 없을 것 같습니다(문제에서 말한
0의 개수말이죠). 간단한 예를 들어 설명하자면,
{{|
16진수 0xA0 에서 두번째 자리의 A를 그냥 A로 받아들이면 0의 개수는 1개이겠지만, A라는 표기 대신에 10이라고 표기했으면 0의 개수는 2이지요. 게다가 이때에는 전체 숫자의 개수를 2라고 해야 하는지 3이라고 해야 하는지도 명확하지 않습니다. 만약 문제에서
숫자의 개수라는 표현 대신에
자리수라고 표현했으면 2이겠지만 문제에서
숫자의 개수라고 했으니 문제를 이해하는데 어려움이 많습니다. 또 10진수 680000 을 800진수로 변환할때 이를 어떻게 표기해야 할지도 명확하지가 않습니다.
|}}
그리고 문제를 설명하는 문장의 내용이 한번에 와 닿지가 않네요. 문장을 조금 다듬어 주시면 감사하겠습니다.
-
임인택
책에 있는 올림피아드 문제 원문 그대로를 실었습니다. 문제가 명확하지 않다는 점을 부정할 순 없지만, 문제에 손을 댈 경우 제 주관적인 생각이 문제의 틀을 바꿔버릴 수 있기때문에 어쩔수 없습니다. 개인적 소견으로는 N!을 B진법으로 변환하는 것이므로, 입력을 받는 N이 조금만 커져도 N!이 굉장히 커지기 때문에 N은 B보다 작은 범위, 즉 B진수 체계에서 한자리를 입력받는 문제가 아닐까 합니다. 또한, 문제의 마지막 조건인 2^31-1 같이 int형의 오버플로우방지를 해 놓은 것에서 보듯 범위를 어느정도 제한해 놓았다고 보여집니다. 정확한 답변을 드리지 못해 죄송합니다. -
문보창
----
문제분류