다음의 과정을 고려하십시오 :
N. 정수 음이 아닌 촬영
예를27
.정수로를 Spliting
N - floor(N/2)
및floor(N/2)
(A '큰'과 '작은'반) 그 순서대로 작성.
예를 들면27
됩니다14 13
.정수를 새롭고 훨씬 큰 정수로 결합하기 위해 공백을 제거합니다.
예를 들면14 13
됩니다1413
.원하는 횟수만큼 2 단계와 3 단계를 반복합니다.
예 :1413
→707 706
→707706
→353853 353853
→353853353853
→ ...
이 과제는 정확히이 작업을 수행하는 것이지만 항상 기본 10에서는 아닙니다.
도전
B, N 및 S의 세 가지 숫자를 사용하는 프로그램을 작성하십시오.
B는 N의 밑 (2 진에서 10 진) 인 2에서 10까지의 정수입니다.
N은 분할 재결합 프로세스를 적용 할 음이 아닌 정수입니다. 사용자 입력을보다 쉽게하기 위해 문자열 로 제공됩니다 정수가 아닌 기본 B에 로 .
S는 분리-재결합 프로세스를 반복 할 횟수 인 음이 아닌 정수입니다.
프로그램의 출력은 S 분할 조인 절차 후 기저 B에서 N의 문자열 표현입니다.
S가 0
이면 스플릿이 수행되지 않으므로 출력은 항상 N입니다.
N이 0
이면 모든 스플릿은 형태를 0 0
가지며 0
다시 축소 되므로 출력은 항상0
입니다.
예
B = 10, N = 27, S = 1
→1413
B = 10, N = 27, S = 2
→707706
B = 9, N = 27, S = 1
→1413
B = 9, N = 27, S = 2
→652651
B = anything, N = anything, S = 0
→N
B = anything, N = 0, S = anything
→0
N = 1
S = 0
~ 인 모든 B에 대한 테이블 7
:
B S=0 S=1 S=2 S=3 S=4 S=5 S=6 S=7
2 1 10 11 101 1110 111111 10000011111 10000100001000001111
3 1 10 21 1110 202201 101101101100 1201201201212012012011 212100212102121002121212100212102121002120
4 1 10 22 1111 223222 111311111311 2232222232322322222322 11131111131311311111311113111113131131111131
5 1 10 32 1413 432431 213441213440 104220331443104220331442 2433241322130211014044424332413221302110140443
6 1 10 33 1514 535535 245550245545 122553122553122553122552 4125434125434125434125441254341254341254341254
7 1 10 43 2221 11111110 40404044040403 2020202202020220202022020201 10101011010101101010110101011010101101010110101011010100
8 1 10 44 2222 11111111 44444454444444 2222222622222222222226222222 11111113111111111111131111111111111311111111111113111111
9 1 10 54 2726 13581357 62851746285173 3142536758708231425367587081 15212633743485606571782880411521263374348560657178288040
10 1 10 55 2827 14141413 70707077070706 3535353853535335353538535353 17676769267676676767692676771767676926767667676769267676
S = 0
~에 대해 임의의 N을 갖는 모든 B에 대한 테이블 3
:
B S=0 S=1 S=2 S=3
2 11011 11101101 11101111110110 11101111110111110111111011
3 2210 11021101 20102012010200 1001212100121210012121001211
4 1113 230223 112112112111 2302302302323023023022
5 101 2323 11341134 31430423143042
6 120 4040 20202020 1010101010101010
7 134 5252 24612461 1230456412304564
8 22 1111 445444 222622222622
9 4 22 1111 505505
10 92 4646 23232323 1161616211616161
세부
- stdin 또는 명령 행을 통해 입력하십시오. 표준 출력으로 출력합니다.
- 프로그램 대신 B, N 및 S를 사용하여 결과를 정상적으로 인쇄하거나 문자열로 반환하는 함수를 작성할 수 있습니다.
- B, N 및 S는 임의의 순서로 취해질 수있다.
- 10 진수 값이 2 32 미만인 출력을 생성하는 모든 입력 이 작동해야합니다.
- N은 일반적인 방식으로 표현됩니다. 즉, 가장 중요한 숫자가 먼저 기록되고 0 자체를 제외하고는 선행 0이 없습니다
0
. (00
대신 출력0
이 잘못되었습니다.) - 바이트 단위의 가장 짧은 코드가 이깁니다.
당신이 나의 도전을 즐긴다면, Block Building Bot Flocks 을주는 것을 고려하십시오 ! 어떤 사랑 :)