당신은 (여기서 문자열을 만들고 싶어 1 인덱스 인덱스) 문자 n
입니다 n
. 때 n
10 미만이는 간단하다 "123456789"
. 때 n
12 9 (기본 10) 개 이상의 문자를 차지보다, 예를 들어, 숫자의 큰부터 불가능하게된다. 문자열을 두 문자 하위 문자열로 나누면 타협 할 수 있습니다 "020406081012"
. 이제 각 하위 문자열 의 끝 색인은 n
입니다 n
.
이것은 임의의 d
숫자 로 일반화 될 수 있습니다 . 다음은 세 자리 숫자의 문자열에서 "0991021"부분에 대한 설명입니다.
Index: ... * 97 98 99*100 101 102*103 ...
* * *
*---+---+---*---+---+---*---+
Character: ... * 0 | 9 | 9 * 1 | 0 | 2 * 1 | ...
*---+---+---*---+---+---*---+
아직 알아 내지 못했다면, 문자열이나 정수를 사용하고 위에서 지정한대로 자체 참조 문자열을 출력하는 프로그램 / 함수를 작성해야합니다. 한 자리 숫자, 문자 또는 한 문자 문자열의 배열을 출력 할 수도 있습니다.
주어진 정수는 항상 양수이고 길이로 나눌 수 있습니다 (예 : 126은 3으로 나눌 수 있고 4928은 4로 나눌 수 있음). 프로그램은 이론적으로 임의로 큰 입력에 대해 작동해야하지만 언어의 최대 정수 및 / 또는 문자열 길이보다 작다고 가정 할 수 있습니다.
그래도 얻을 수없는 경우 일부 관찰 : 출력 길이는 항상 입력 자체이며 출력에 나타나는 숫자는 입력의 자릿수로 나눌 수 있습니다.
이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
테스트 사례
1 => 1
9 => 123456789
10 => 0204060810
105 => 003006009012015018021024027030033036039042045048051054057060063066069072075078081084087090093096099102105
1004 => 00040008001200160020002400280032003600400044004800520056006000640068007200760080008400880092009601000104010801120116012001240128013201360140014401480152015601600164016801720176018001840188019201960200020402080212021602200224022802320236024002440248025202560260026402680272027602800284028802920296030003040308031203160320032403280332033603400344034803520356036003640368037203760380038403880392039604000404040804120416042004240428043204360440044404480452045604600464046804720476048004840488049204960500050405080512051605200524052805320536054005440548055205560560056405680572057605800584058805920596060006040608061206160620062406280632063606400644064806520656066006640668067206760680068406880692069607000704070807120716072007240728073207360740074407480752075607600764076807720776078007840788079207960800080408080812081608200824082808320836084008440848085208560860086408680872087608800884088808920896090009040908091209160920092409280932093609400944094809520956096009640968097209760980098409880992099610001004