리엔 번호


38

Champernowne 상수는 무한대 경향이 있는 첫 번째 n숫자 를 연결하여 구성되는 숫자 n입니다. 다음과 같이 보입니다 :

0.123456789101112131415161718192021222324252627282930...

이제 Rien 번호를 설명하겠습니다 . 이것은 Champernowne 상수를 정수로 최소화 한 것으로 생각할 수 있습니다. 첫 번째 숫자가 Ri ( n ) 인 Rien 번호를 참조합니다 . 이것이 공식화 방법입니다.n

  1. 첫 번째 n자연수 (시퀀스 {1,2,3, ...})가 연결됩니다.
  2. 그런 다음이 결과는 숫자 값에 따라 정렬됩니다. 이렇게 1..12보일 것 011111223456789입니다.
  3. 때문에 리엔의 번호 앞에 0을 가질 수 없습니다, 우리는 모든 이동 0, 그들이 말하는, 그 결과 최소 수를 유지하면서, 의미가 너무이야 101111223456789. 이것은 Ri ( n )이며,이 경우 Ri (12)입니다.

다음은 Ri ( n )에 대한 결과입니다 .

n     Ri ( n )
1 1
2 12
3,123
7 1234567
9 123456789
10 10123456789
15 101111111223344556789
34 10001111111111111222222222222223333333334444555666777888999
42 100001111111111111122222222222222233333333333333444444455556666777788889999
45100001111111111111122222222222222233333333333333344444444444555556666777788889999
55 10000011111111111111122222222222222223333333333333333444444444444444455555555555566666777778888899999
100 100000000000111111111111111111111112222222222222222222233333333333333333333444444444444444444445555555555555555555566666666666666666666777777777777777777778888888888888888888899999999999999999999
9991000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

목표n 입력 ( 숫자 , STDIN 또는 언어가 기존 입력을 지원하지 않는 경우 하드 코딩을 통해)으로 1 ≤ <10000을 지정하면 출력 / 반환 Ri ( n).

이것은 이므로 바이트 단위의 가장 짧은 코드가 이깁니다. 이 도전에 대한 답변을하지 않은 한,이 콘테스트 후에 작성된 언어를 사용할 수 있습니다. (물론 흥미로운 솔루션을 제공하지만 대답을 경쟁이 아닌 것으로 표시하면 사용할 있습니다.)

참조 구현

나는 이것을 IE에서 테스트 했으므로 실제로 문제가되지 않아야합니다. 이 경우 문제, 쉬운 해결 방법이 있습니다 : 제정신이 브라우저를 얻을.

function min(n) {
  var seq = [];
  for(var i = 1; i <= n; i++) seq.push(i);
  seq = seq.join("").split("").map(Number);
  var to;
  if(seq.indexOf(1) >= 0) to = seq.splice(seq.indexOf(1), 1);
  seq.sort(function(a, b) {
    return a - b;
  });
  if(to) seq = to.concat(seq);
  return seq.join("");
}
t.onchange = t.onkeyup = function() {
  h.innerHTML = min(this.value)
}
* {
  font-family: Consolas, monospace;
}
input {
  border: 2px dotted #aaaaaa;
  border-radius: 5px;
  margin: 10px;
}
<input id="t" type="number">
<div id="h">


리더 보드

이 게시물의 맨 아래에있는 스택 스 니펫은 답변 a) 언어 당 가장 짧은 솔루션 목록으로, b) 전체 리더 보드로 카탈로그를 생성합니다.

답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.

## Language Name, N bytes

N제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :

## Ruby, <s>104</s> <s>101</s> 96 bytes

헤더에 여러 숫자를 포함하려는 경우 (예 : 점수가 두 파일의 합계이거나 인터프리터 플래그 페널티를 별도로 나열하려는 경우) 실제 점수가 헤더 의 마지막 숫자 인지 확인하십시오 .

## Perl, 43 + 2 (-p flag) = 45 bytes

언어 이름을 링크로 만들면 스 니펫에 표시됩니다.

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


22
난 항상 생각 0은 IS 리엔 수.
flawr

내가 빠진 것이 확실하지 않지만, 1s 중 하나를 s 앞으로 옮길 수 있습니다 0.
FryAmTheEggman

@FryAmTheEggman 당신이 맞습니다.
Conor O'Brien

@ MartinBüttner \ o / 찾았습니다.
코너 오브라이언

@ CᴏɴᴏʀO'Bʀɪᴇɴ 하나는 달랐습니다. 그것은 개별 숫자가 아닌 전체 숫자의 순열만을 허용했습니다.
Martin Ender

답변:



13

펄, 44 42 41 33 31 바이트

Yaaay, 첫 번째 게시물!

2 바이트 저장을위한 primo 덕분입니다.

print 1,sort"@{[2..<>]}"=~/\d/g

다른 사람들처럼 1을 제거하고 수동으로 추가하면 작업이 수행됩니다.

온라인으로 사용해보십시오


2
PPCG에 오신 것을 환영합니다. 첫 번째 게시물을 축하합니다 (당신이 내가하기 전에 가입했기 때문에 나를 환영하게하는 것이 이상해 보이지만 ...). 두 가지-나는 43 바이트를 계산 합니다 ... 둘째, "온라인으로 시도하십시오"링크는 코드의 이전 / 다른 버전을 가리키는 것으로 보입니다. 코드를 Ideone에 수동으로 복사하여 붙여 넣기는 작동하지만 링크는 작동하지 않습니다.
AdmBorkBork

당신이 의견을 주셔서 감사합니다! 바이트 수로 TextWrangler를 사용했습니다 .1을 너무 많이 갔다고 생각합니다 (공백이 필요하지 않으므로 전체 바이트 수를 42로 줄입니다). 이제 Ideone이 수정되었습니다.
Paul Picard

아, 몰랐어 내 Mac (5.18)의 Perl에서도 작동합니다. 감사합니다!
Paul Picard


2
split / join을 제거하여 2 바이트를 절약했습니다.print 1,sort"@{[2..<>]}"=~/\d/g
primo

11

apt, 14 12 바이트

1+2o°U ¬¬n ¬

온라인으로 사용해보십시오!

작동 원리

1+2o°U ¬¬n ¬  // Implicit: U = input integer
  2o°U        // Generate the range of integers from 2 to U, inclusive.
       ¬¬     // Join, then split into chars.
         n    // Sort.
1+         ¬  // Join again, and add a 1 to the beginning.
              // Implicit: output last expression

4
5 분 유예 기간에 골프를 쳤습니까? 세계에서 가장 빠른 총
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ 그 이후에 새로운 코드 골프를 게시하고 싶지 않다고 생각합니다 : D
Pierre Arlaud

9

레티 나 , 78 바이트

몇 가지 새로운 Retina 기능을 선보일 시간입니다 (아직 경쟁력이 없지만 오늘날까지는 아마도 300 바이트에 가까웠을 것입니다).

.+
$0$*1
\B
 $`
(1)+
$#1
^1| 

.
 1$0$*1
+r`(1+\2) (1+)\b
$2 $1
 1(1)*
$#1
^
1

온라인으로 사용해보십시오.

설명

십진법과 단 항법 사이를 매우 편리하게 변환하는 것이 가능하지만, 일부 연산은 단항식보다 십진법으로 처리 할 수 ​​있기 때문에 여러 번 앞뒤로 변환해야하기 때문에 여전히 꽤 길다.

.+
$0$*1

입력을 단항으로 변환하여 시작하겠습니다. 이것은 입력을 일치시킨 다음 $*1어떤 반복 1을 여러 번 반복 하여 작동합니다 (이 반복 기능은 현재 새로운 기능입니다).

\B
 $`

다음 으로 단항 에서 1까지 범위를 생성합니다 N. 왜 이것이 FizzBuzz 답변에서 작동하는지 설명했습니다 .

(1)+
$#1

범위의 각 숫자를 다시 십진수로 변환하여 십진수로 작업 할 수 있습니다. 이는 각각의 단항 번호를 일치시켜 각각 1별도의 캡처를 생성함으로써 수행됩니다. 그런 다음 새로운 캡처 카운트 구문을 사용하여 그룹 1의 캡처 수로 대체합니다 $#1.

^1| 

이렇게하면 1문자열에서 선행 및 공백 이 제거 되므로 숫자 만 남습니다 (단일 제외 1).

.
 1$0$*1

우리는 단항으로 다시 변환 1하고 각 숫자에 더합니다 (짝수도 0비어 있지 않도록 ). 또한 각 숫자 앞에 공백을 삽입하여 분리되도록합니다.

+r`(1+\2) (1+)\b
$2 $1

우리는 작은 숫자 앞에 큰 숫자를 반복해서 일치시키고 교체합니다. 레티 나의 버블 정렬입니다. :)

 1(1)*
$#1

Aaaand는 10 진수로 돌아갑니다.

^
1

마지막으로 1앞에서 제거한 것을 설명하기 위해 앞에 하나 를 삽입합니다 .


1
어떤 새로운 기능에 대해 이야기합니까?
Conor O'Brien

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ 나중에 설명을 추가하겠습니다. 이것은 매우 짧은 10 진수 / 단항 변환에 사용될 수있는 캡처 및 반복 문자를 계산하기 위해 새로운 대체 구문을 사용합니다. 전체 변경 내역
Martin Ender

@ MartinBüttner 좋은. 이것이 Retina가 더 이상 이 면제를 청구 할 수 없다는 것을 의미합니까 ?
디지털 외상

@DigitalTrauma 여전히 가장 자연스러운 형태의 입력이라고 생각합니다. 또한 나는 이런 종류의 언어주의가이 사이트에서 어떻게 그렇게 많은 지원을 받는지 이해하지 못했습니다.
마틴 엔더

6

하스켈, 44 바이트

import Data.List
f n='1':sort(show=<<[2..n])

불행히도 sort에 있으며 Data.List17 바이트입니다!


6

자바 스크립트 (ES6), 65 62 54 52 바이트

edc65 덕분에 3 바이트 절약

x=>eval("for(b='';x>1;)1+[...b+=x--].sort().join``")

2에서까지의 모든 숫자의 문자열을 작성한 x다음 분할, 정렬, 결합 및 시작 부분에 1을 추가합니다. 이것은 여전히 ​​골프 가능합니다. 제안을 환영합니다!


나는 ES6을 가지고 있지 않지만 (신규)를 사용할 수는 Array(x-1).map((_,y)=>y+2)없습니까?
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ지도는 빈 배열 요소를 건너 뛰므로 사용해야합니다 Array(n).fill().map(...(ES6 팁 참조)
edc65

내 게시물을 게시하기에는 너무 늦었지만 힌트는 다음과 같습니다. n=>1+[...[...Array(n-1)].map(_=>++n,n=1).join``].sort().join`` (1 바이트 더 짧음, 분할 됨)
edc65

@ edc65와 Cᴏɴᴏʀ O'Bʀɪᴇɴ 팁을 주셔서 감사합니다! 사용 .split()이 왜 그렇게 이상하다고 생각 하는지 궁금했습니다 .
ETHproductions

@ edc65 허, 내 솔루션은 당신과 같은 길이입니다 :n=>1+[...[...Array(n+1).keys()].slice(2).join``].sort().join``
Neil


5

매스 매 티카, 52 바이트

"1"<>ToString/@Sort[Join@@IntegerDigits[2~Range~#]]&

다시 한 번 문자열 처리가 발생했습니다 ...


내 생각 엔 IntegerDigits당신이 그것을 매핑 할 필요가 없습니다리스트를 통해 스레드.
Martin Ender

아 맞다.
Martin Ender

4

APL (17)

'1',∆[⍋∆←1↓∊⍕¨⍳⎕]

설명:

'1',∆[⍋∆←1↓∊⍕¨⍳⎕]
-----------------
               ⎕   read a number from the keyboard
               ⍳    get the natural numbers up to and including that number
             ⍕¨    get the string representation for each number
           ∊       flatten the array (giving a string of digits)
         1↓        remove the first digit (which is always 1)
       ∆←          store the result in ∆
      ⍋            get a permutation to sort ∆ upwards
    ∆[           ] rearrange ∆ so that it is sorted
'1',               add a 1 to the front

테스트:

      '1',∆[⍋∆←1↓∊⍕¨⍳⎕]
⎕:
      1
1
      '1',∆[⍋∆←1↓∊⍕¨⍳⎕]
⎕:
      10
10123456789
      '1',∆[⍋∆←1↓∊⍕¨⍳⎕]
⎕:
      55
10000011111111111111122222222222222223333333333333333444444444444444455555555555566666777778888899999

좋은! 내 것보다 훨씬 낫다. : DI는 그것이 배열을 평평하게하고 문자열을 줄 것이라는 것을 인식하지 못했습니다 . 알아두면 좋습니다.
Alex A.

3

파이썬 2, 60 바이트

_="".join;print"1"+_(sorted(_(map(str,range(2,input()+1)))))


3

루비, 48 바이트

익명의 기능. 기본적으로 여기에 다른 답변 중 일부가 Rubyfied되었습니다.

->n{n>1?(?1+[*2..n].join.chars.sort*'').to_i: n}

3

Brachylog , 76 41 바이트

1 .;{,1:.e?}?:1fcbZlL,ZoOlM,10^(L-M)=:Oc.

숫자를 입력으로받습니다.

이 솔루션은 내장 Findall 술어에 대한 몇 가지 변경 사항과 함께 작동합니다 f. OP는 대답보다 오래된 언어를 사용하는 것이 좋습니다. 그래서 괜찮습니다.

설명

1 .                                            § If the input is 1, unify output with 1

   ;                                           § Else

    {      }?:1f                               § Output a list of all inputs which satisfy
                                               § the predicate in brackets with the input
                                               § of the main predicate (ie the input number)
                                               § as output

     ,1:.e?                                    § True if the input is an integer between 1
                                               § and . (the output)

                cbZ                            § Concatenate everything into a single number,
                                               § remove the first digit (1) and call it Z

                   lL,ZoOlM,                   § L is the length of Z, M is the length of O
                                               § O being Z sorted (which removes the leading
                                               § 0s)

                            10^(L-M)=:Oc.      § Concatenate 10^(L-M) at the beginning of O
                                               § and unify it with the output

3

스몰 토크, 76 바이트

스몰 토크에서와 마찬가지로 개념적으로는 매우 간결하지만 텍스트는 매우 장황합니다 ...

f:l^'1',((2to:l)fold:[:p :q|p asString,q asString])asByteArray sort asString

이것을 클래스 메소드로 추가하고 이와 같이 String호출하십시오 (예 : 20)String f: 20



3

배쉬, 35 34 바이트

printf %d 1`seq 2 $1|fold -1|sort`

이것은 @DigitalTrauma@OlivierDulac 의 답변을 기반으로합니다 . Ideone 으로 온라인으로 사용해보십시오 .

작동 원리

  • seq 2 $12 에서 모든 정수를 명령 행에 지정된 정수로 인쇄합니다 .

  • fold -1 너비가 1 인 모든 줄을 줄 바꿈합니다. 즉, 각 문자를 자체 줄에 배치합니다.

    -1 문서화되지 않은 기능인 것 같습니다.

  • sort 숫자 값을 기준으로 문자를 정렬합니다.

  • printf %d 1`...`​1 을 첫 번째 행 앞에 추가하고 각 행을 %d구분없이 정수 ( ) 로 인쇄합니다 .

    이것은 모든 인수가 사용될 때까지 형식 문자열을 반복해서 반복하는 Bash의 호기심 많은 printf 구현을 이용합니다.


+1, 나는 우리 것보다 낫다 :)
Olivier Dulac

3

자바 스크립트 ES6, 49 46 바이트

2 바이트 edc65 덕분에

F=
x=>1+[...(g=_=>x>1?x--+g``:_)``].sort().join``

;console.log(F(15))


1
비슷한 것이 있지만 1 바이트 더 짧습니다. 인수없이 재귀 함수를 사용해보십시오. 원래 매개 변수 x를 줄이면됩니다.
eDC65

2

줄리아, 33 바이트

n->"1"*join(sort([join(2:n)...]))

정수를 받아들이고 문자열을 반환하는 람다 함수입니다. 호출하려면 변수에 지정하십시오.

<2에 2:n대해 비어 있는 range를 구성하고 , n문자열로 결합하고, 문자열을 문자 배열로 표시하고, 정렬하고, 문자열로 결합하고, 1을 앞에 추가합니다.


2

APL, 21 바이트

{' '~⍨⍕1,x[⍋x←⍕1↓⍳⍵]}

이것은 이름없는 monadic 함수이며 오른쪽에 정수를 허용하고 문자열을 반환합니다. 호출하려면 변수에 지정하십시오.

설명:

            x←⍕1↓⍳⍵]}   ⍝ Get the numbers 1:input, drop 1, convert to string
         x[⍋            ⍝ Sort
      ⍕1,               ⍝ Tack 1 onto the front, flatten to string
{' '~⍨                  ⍝ Remove the spaces (side effect of ⍕ on an array)

온라인으로 사용해보십시오


2

파이썬 2, 60 바이트

P=input();print"1"+"".join(sorted(`range(2,P+1)`)[P*2-4:-2])

승리를위한 인덱싱. :-)


파이썬 2, 60 바이트

P=input();print"1"+"".join(sorted(`range(-P,-1)`))[P*3-5:-2]

그냥 대안입니다.


2

은하수 1.6.4 , 22 바이트 (경쟁 불가)

^^'LH=^^JB", "-Q"1";+!

이 도전을 위해 정렬 opcode를 추가해야했습니다.


설명

^^                      ` pop the TOS
  '                     ` read input from the command line
   LH                   ` push a reversed Pythonic range(TOS+1)
     =^^J               ` remove the top 2 items from the TOS
         B              ` push the string literal of the TOS
          ", "-         ` remove ", " from the TOS
               Q        ` sort the TOS
                "1";+   ` add "1" to the beginning of the TOS
                     !  ` output the TOS


2

Bash 및 GNU 도구, 58 52 바이트

echo 1$(seq 2 $1|sed -e 's/./&\n/g'|sort|tr -d \\n)

@ Digital-trauma와 비슷한 접근 방법이지만 1을 추가하는 다른 방법이며 숫자가 1 자리이므로 -n이 필요하지 않습니다. (내가 처음 시도한 후에 그의 대답을 보았습니다)
Olivier Dulac

2

PowerShell, 61 59 바이트

param($a)(("1"+-join([char[]]-join(2..$a)|sort)),1)[$a-eq1]

입력 param($a)을받은 다음이를 사용하여로 배열에 색인을 생성 [$a-eq1]합니다. 참이면 두 번째 요소를 인덱싱하고 출력 1합니다. 그렇지 않으면 우리 는 1) 자체적으로 함께 연결된 새 범위 를 정의하고 , 2)이를 범위 를 문자 배열로 캐스팅하고, 3) cmdlet을 통해 전송하여 생성 된 ed 배열 "1"과 연결 합니다.join2..$ajoinSort-Object

Edit1-내부 -join연산자 를 이동하여 2 바이트를 저장했습니다 .


2

고흐 , 9 7 바이트

GJT1-1P

다음을 사용하여이를 실행할 수 있습니다.

$ ./gogh noi 'GJT1-1P' <input>

G     “ Push a range (1, TOS]       ”
J     “ Join the TOS                ”
T     “ Sort the TOS                ”
1-    “ Remove the first 1          ”
P     “ Prepend the TOS to the STOS ”

"이 도전에 대한 답변을하지 않은 한,이 콘테스트 후에 작성된 언어를 사용할 수 있습니다." 나는 그러한 언어들이 나의 도전에서 일반적으로 경쟁하도록 허용한다.)
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ : 오, 대박! 지적 해 주셔서 감사합니다 :)
Zach Gates

2

젤리 , 8 바이트

RDFṢ1œ|Ḍ

온라인으로 사용해보십시오!

작동 원리

RDFṢ1œ|Ḍ  Main link. Argument: n (integer)

R         Range; yield r := [1, ..., n].
 D        Convert each k in r into the array of its digits in base 10.
  F       Flatten the resulting array of lists.
   Ṣ      Sort the resulting flat list of digits.
    1œ|   Perform multiset union with 1 as left argument.
          This moves a single 1 to the beginning of the list.
       Ḍ  Convert the resulting list of base 10 to integer.

2

Oracle SQL 11.2, 222 211 바이트

SELECT 1||TRIM(xmlagg(xmlelement(e,c)).EXTRACT('//text()'))FROM(SELECT SUBSTR(s,LEVEL+2,1)c FROM(SELECT MAX(sys_connect_by_path(LEVEL,' '))s FROM DUAL CONNECT BY LEVEL<=:1)CONNECT BY LEVEL<=LENGTH(s)ORDER BY 1);

언 골프

SELECT 1||TRIM(xmlagg(xmlelement(e,c)).EXTRACT('//text()'))  -- add leading 1, concatenate each char and remove spaces
FROM   (
         SELECT SUBSTR(s,LEVEL+2,1)c                          -- split the string in characters, omiting the first number (1)   
         FROM   (
                  SELECT MAX(sys_connect_by_path(LEVEL,' '))s -- create a string by concatenating numbers
                  FROM   DUAL 
                  CONNECT BY LEVEL<=:1
                )
         CONNECT BY LEVEL<=LENGTH(s)ORDER BY 1
       )

2

MATL , 17 바이트

사용 최신 버전 (7.0.0) 언어 / 컴파일러를.

49[]i:"@YUh]6L)Sh

FryTheEgggman의 답변에서 영감을 얻었습니다 .

편집 (2016 년 7 월 29 일) : 언어 변경에 맞게 일부 수정을 통해 온라인 으로 시험해 볼 수 있습니다.

>> matl
 > 49[]i:"@YUh]6L)Sh
 >
> 12
101111223456789

설명

49        % push '1'
[]        % push empty array
i:        % input "N" and build vector [1, 2, ... N]
"         % for each number in this vector
   @      % push that number
   YU     % convert to string
   h      % concatenate horizontally
]         % end
6L)       % remove first element
S         % sort
h         % concatenate horizontally

1

05AB1E , 6 바이트

참고 : 이 제출물은이 과제를 마무리 짓는 기능을 사용하므로 경쟁이되지 않습니다.

암호:

Lß?J{?

설명:

L      # Creates the list [1 .. input]
 ß     # Extract the smallest value of the list
  ?    # Print this value (always 1)
   J   # ''.join(list)
    {  # Sort the string
     ? # Print this value

ISO 8859-1 인코딩 사용


어떻게 작동합니까?
lirtosiast

@ThomasKwa 설명 추가
Adnan

우와 이건 끝내줘!
Conor O'Brien

1

Mathcad, 86 바이트

s (n) 함수는 for 루프를 사용하여 각 숫자를 문자열 형식으로 변환하고 함께 연결하여 Champernowne "정수"를 만듭니다. 그런 다음 문자열은 동등한 ASCII 코드 벡터로 변환되어 정렬됩니다. 그런 다음이 함수는 선행 0을 첫 번째 0과 바꾸고 벡터를 다시 문자열로 변환합니다.

함수를 확인하기 위해 테스트 케이스를 벡터 vn에 넣은 다음 vectorize 연산자를 사용하여 s를 vn에 적용했습니다. 그런 다음 주어진 테스트 케이스 값에 대해 결과를 확인합니다.

여기에 이미지 설명을 입력하십시오


Mathcad는 "영역"으로 구성된 2D 워크 시트를 기반으로하는 수학 응용 프로그램으로, 각각 텍스트, 수학 표현, 프로그램, 플롯 또는 스크립팅 된 구성 요소 일 수 있습니다.

수학 또는 프로그래밍 명령어는 팔레트 도구 모음에서 선택하거나 키보드 단축키를 사용하여 입력합니다. 골프 목적으로, 작업 ( "바이트")은 이름 또는 표현식을 작성하는 데 필요한 키보드 작업의 수로 간주됩니다 (예 : 변수 a를 3으로 설정하기 위해 a : = 3을 작성합니다). : =는 단일 키 누르기 ":"이며 a와 3은 총 3 개의 "바이트"를 제공합니다. 연산자를 프로그래밍하려면 ctl-shft-# (또는 프로그래밍 도구 모음에서 한 번 클릭)을 입력해야하므로 다시 1 바이트

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.