Puzzling에 대한 이 게시물 에서 영감을 얻었 습니다 . 그 퍼즐의 스포일러는 다음과 같습니다.
입력으로 3 개의 양의 정수가 주어지면 (x, y, z)
포함 범위를 구성하고 해당 범위 [x, y]
를 연결 한 다음 제거하십시오.z
불필요하게 연속적인 숫자를 하여 가능한 가장 크고 작은 양의 정수를 생성하십시오. 선행 0은 허용되지 않습니다 (즉, 숫자는로 시작해야합니다 [1-9]
). 이 두 숫자를 순서대로 출력하십시오.
Puzzling 게시물의 예에서 input (1, 100, 100)
은 가능한 가장 큰 숫자는 99999785960616263646566676869707172737475767778798081828384858687888990919293949596979899100
이며 jafe의
아래 논리에
따라 가장 작은 숫자는입니다 10000012340616263646566676869707172737475767778798081828384858687888990919293949596979899100
.
게시 대답이 :
- 우리는 숫자의 길이 (고정 된 자릿수가 있음)에 영향을 줄 수 없으므로 값을 최대화하기 위해 최대 첫 번째 숫자, 두 번째 숫자 등을 취합니다.
- 나인이 아닌 첫 번째 84 개를 제거합니다 (제거 할 16 자리 남음).
999995051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
- 다음 17 자리 숫자 중 가장 큰 숫자는 7이므로 여기에서 답의 다음 숫자는 최대 7 자 (16 자리를 초과 할 수 없음)입니다. 따라서 7이 아닌 15를 제거하십시오 ...
999997585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
- 여기에서 다음 숫자는 최대 8 자일 수 있으므로 가운데에서 8이 아닌 하나를 제거하십시오.
99999785960616263646566676869707172737475767778798081828384858687888990919293949596979899100
- 비슷한 논리,하지만 반전 (즉, 우리는 최고의 원하는
1
들 대신 선도9
가장 작은 숫자에 ).
다음은 더 작은 예입니다. (1, 10, 5)
..
우리는 범위를 구성하고 가능한 가장 큰 숫자를 남겨두고 제거 할 수 12345678910
있는 5
숫자를 결정 합니다. 분명히 그것은 출력 길이에 영향을 줄 수 없기 때문에 선행 자릿수를 최대화하고 싶다는 것을 의미합니다. 따라서을 제거하면으로 12345
남게되며 678910
이는 최대 규모입니다. 가장 작은 것을 만드는 것은 조금 까다 롭습니다. 왜냐하면 우리는 123410
가능한 한 가장 작은 숫자를 남겨두고 중간에서 숫자를 뽑아 낼 수 있기 때문 입니다.
의 경우 (20, 25, 11)
결과는 as 5
및 로 다소 지루 1
합니다.
마지막으로, 앞의 0을 시도 답변을 배제하기 위해, (9, 11, 3)
제공 91011
하는 차례 금리91
및 10
최대 및 최소있다.
I / O 및 규칙
- 더 쉽고 짧으면 두 개의 프로그램 / 기능을 코딩 할 수 있습니다. 하나는 가장 큰 것과 가장 작은 것입니다.이 경우 점수는 두 부분의 합계입니다.
- 입력 및 출력은 편리한 방법 으로 제공 할 수 있습니다 .
- 입력은 사용자 언어의 고유 숫자 유형에 적합하다고 가정 할 수 있지만 연결된 숫자 나 출력은 그렇게 가정 할 수 없습니다.
- 전체 프로그램 또는 기능이 허용됩니다. 함수 인 경우 출력하지 않고 출력을 반환 할 수 있습니다.
- 표준 허점 은 금지되어 있습니다.
- 이것은 코드 골프 이므로 모든 일반적인 골프 규칙이 적용되며 가장 짧은 코드 (바이트)가 이깁니다.
9, 11, 3
.