이 도전은 실제적이고 비극적 인 영감에 의해 당신에게 가져옵니다. 최근에 키보드의 숫자 행이 약간 산발적이었습니다. 키는 1-9
때때로 작동하지만 다른 경우에는 결과가 없습니다. 열렬한 프로그래머로서 이것은 끔찍합니다! (그 느낌표를 참조하십시오. 그것이 그들이 지금 일하고 있음을 아는 방법입니다.) 종종 숫자 자체뿐만 아니라 기호도 필요합니다!@#$%^&*(
절반도 완전히 효과가 없습니다! C 프로그래머로서 랩톱을 수정하기 위해 바쁜 일정을 피하는 데 시간을 허비하지 않고 문제를 해결하는 데 더 관심이있었습니다. 지난 몇 주 동안 천천히, 내 코드의 모든 숫자 리터럴이 16 진수로 바뀌어 숫자를 복사하여 붙여 넣기 위해 사냥을 할 필요가 없습니다. 그러나 키가 없으면 일부 숫자를 입력하기가 쉽지 않습니다 1-9
. 예를 들어, 숫자 1
는 단순히 16 진수로 쓰여질 수 없으며 1
코드 에서을으로 바꾸는 것에 의지했습니다 0xF - 0xE
. 영향을받는 유일한 키는 1-9
내가 좋아하는 심볼 전체를 사용을 유지하므로, +
, -
,와 /
. 그러나 곱셈이나 괄호는 사용할 수 없습니다.*
그리고 (
자주 끊어집니다. 이것은 당신의 도전으로 이어집니다.
입력
n
stdin 또는 해당 언어에 해당 하는 정수 입니다. 원하는 경우 정수 앞에 새 줄이나 다른 공백 문자가 올 수 있습니다. 또는 명령 행 인수를 통해 입력을받을 수도 있습니다.
프로그램은 음의 입력에 올바르게 응답해야하며 최소 32 비트 부호있는 정수를 처리 할 수 있어야합니다.
산출
프로그램은 n
하나 이상의 16 진수 값의 합계, 차이 또는 나눗셈으로 숫자를 쓸 수있는 가장 짧은 방법 (공백이 아닌 문자로)을 관찰 가능한 형태로 출력해야 합니다. 이 문제를 해결하는 방법은 여러 가지가 있으며 다른 길이보다 동일한 길이의 출력을 선호 할 필요는 없습니다.
출력 형식이어야 다음의 16 진수 값 인 숫자 만 함유 한 기호 중의 하나이다 . 하자 정수 나누기,하지 부동 소수점을 설명합니다.A % A % A...
A
0x
A-F a-f
%
-+/
/
( n
분할 결과는 먼저 왼쪽에서 오른쪽으로 나눗셈을 평가 한 다음 더하기와 빼기를 왼쪽에서 오른쪽으로 평가할 때 결과로 표시 됩니다.)
테스트 사례
입출력
1
0xF - 0xE
(또는0xF-0xE
또는0xB-0xA
또는0xd - 0xc
또는0xF/0xF
)15
0xF
255
0xFF
30
0xF + 0xF
채점 및 규칙
이것은 코드 골프입니다. 예비 점수는 소스 파일의 바이트 수입니다.
1-9
소스 에서 숫자 를 사용할 수 없습니다 .
당신 !@#$%^&*(
은 당신의 소스에서 기호 를 사용할 수 있지만 각각의 점수에 +20의 페널티가 있습니다.
프로그램이 n
사람이 읽을 수있는 출력 형식을 생성하는 한 인수로 사용 되는 함수로 프로그램이 대체 될 수 있습니다 . 함수의 반환 값은 출력으로 계산되지 않습니다.
표준 허점 은 허용되지 않습니다.
최저 점수가 이깁니다! 행운을 빕니다!
나는 형식화 / 질문 / 명확한 무언가를 잘못 했습니까? 알려주세요! 이 사이트에 대한 첫 번째 제출입니다!