이 챌린지를 게시하기 전에 샌드 박스 를 확인하지 않았습니다. 이 챌린지가 Cᴏɴᴏʀ O'Bʀɪᴇɴ 에서 제안한 것 같습니다 .
정수 입력이 주어지면 "4는 마법의 숫자"수수께끼를 출력하는 프로그램을 작성하십시오
- 4는 마법의 숫자입니다
- 5는 4이고 4는 마법의 숫자입니다
- 6은 3, 3은 5, 5는 4, 4는 매직 넘버입니다
- 11은 6, 6은 3, 3은 5, 5는 4, 4는 매직 넘버입니다
- 5 백은 11, 11은 6, 6은 3, 3은 5, 5는 4, 4는 마법 수
수수께끼를 이미 알고 있거나 수수께끼가 무엇인지 알아 내기 위해 너무 게으른 경우 여기에 설명이 있습니다.
다음 숫자는 이전 숫자의 글자 수입니다. 예를 들어 5 에는 4 개의 문자가 있으므로 다음 숫자는 4 입니다.
6 은 3 개의 문자 를 가지 므로 다음 숫자는 3 , 3 은 5 개의 문자 를 가지 므로 다음 숫자는 5 , 5 는 4 개의 문자 를 가지 므로 다음 숫자는 4입니다
. 수수께끼 가 4로 끝나는 이유는 4 개의 문자가 있기 때문입니다 , 4는 4, 4는 4, 4는 4 ... (4는 매직 넘버)
테스트 사례
0 =>
Zero is four and four is the magic number
1 =>
One is three and three is five and five is four and four is the magic number
2 =>
Two is three and three is five and five is four and four is the magic number
3 =>
Three is five and five is four and four is the magic number
4 =>
Four is the magic number
5 =>
Five is four and four is the magic number
6 =>
Six is three and three is five and five is four and four is the magic number
7 =>
Seven is five and five is four and four is the magic number
8 =>
Eight is five and five is four and four is the magic number
9 =>
Nine is four and four is the magic number
10 =>
Ten is three and three is five and five is four and four is the magic number
17 =>
Seventeen is nine and nine is four and four is the magic number
100 =>
One Hundred is ten and ten is three and three is five and five is four and four is the magic number
142 =>
One Hundred Forty Two is eighteen and eighteen is eight and eight is five and five is four and four is the magic number
1,000 =>
One Thousand is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
1,642 =>
One Thousand Six Hundred Forty Two is twenty nine and twenty nine is ten and ten is three and three is five and five is four and four is the magic number
70,000 =>
Seventy Thousand is fifteen and fifteen is seven and seven is five and five is four and four is the magic number
131,072 =>
One Hundred Thirty One Thousand Seventy Two is thirty seven and thirty seven is eleven and eleven is six and six is three and three is five and five is four and four is the magic number
999,999 =>
Nine Hundred Ninety Nine Thousand Nine Hundred Ninety Nine is fifty and fifty is five and five is four and four is the magic number
규칙
- 입력은
STDIN함수 에서 가져 오거나 함수의 인수로 사용할 수 있습니다. - 입력은 0에서 999,999 사이의 양수입니다.
- 입력 에는 숫자 만 포함됩니다 (정규식을 따릅니다
^[0-9]+$) - 입력은 정수 또는 문자열로 취할 수 있습니다
- 단어 문자열로 변환 할 때 공백과 하이픈은 개수에 포함하지 않아야합니다 (100 [100]은 11이 아닌 10 자입니다.
- 문자열로 변환 할 때 100은 백 또는 백이 아닌 1 백이어야하고 1000은 천 또는 천이 아니라 1 천이어야합니다.
- 문자열로 변환 할 때 142는 100 과 40이 아닌 100 분의 1이어야합니다.
- 출력은 대소 문자를 구분하지 않으며 " N 은 K 이고 K 는 M 이고 M 은 ...이고 4는 매직 번호" 형식을 따라야합니다 (입력이 4가 아닌 경우 출력은 단순히 "4"여야 함). 마법 번호입니다 ")
- 프로그램이 항상 일관된 한 출력 은 문자 대신 숫자를 사용할 수 있습니다 ( "5는 4, 4는 마법의 숫자"대신 "5는 4, 4는 마법의 숫자").
- 출력은 함수의 반환 값이거나
STDOUT - 표준 허점 적용
- 이것은 code-golf 이므로 바이트 단위의 가장 짧은 프로그램이 승리합니다. 행운을 빕니다!
보너스
입력이 -999,999에서 999,999 사이 일 때 프로그램이 작동하면 -30 바이트 입니다.
음수는 단어로 변환 될 때 앞에 "음수"를 갖습니다. 예를 들어 -4"음수 4", 음수 4는 12, 12는 6, 6은 3, 3은 5, 5는 4, 4는 매직 넘버입니다.
프로그램이 숫자의 문자열 표현을 생성하기 위해 내장 함수를 사용하지 않는 경우 -150 바이트
리더 보드
리더 보드와 언어 별 수상자 개요를 모두 생성하는 스택 스 니펫입니다.
답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.
## Language Name, N bytes
여기서 N은 제출 크기 (바이트)입니다.
헤더에 여러 숫자를 포함하려면 (예를 들어, 오래된 점수를 받거나 바이트 수에 플래그 포함) 실제 점수가 헤더 의 마지막 숫자 인지 확인하십시오.
## Language Name, <s>K</s> X + 2 = N bytes