소개
밑 10에서, Champernowne 상수는 연속 정수의 표현을 연결하여 정의됩니다. 기본 10에서 : 0.1234567891011121314151617...
등등.
첫 번째 출현이 10 진수 로 15
시작되는 것을 볼 수 있습니다 20th
.
Position
0000000001111111111222222222233333333334444444444555555555566666666
1234567890123456789012345678901234567890123456789012345678901234567
^
0.1234567891011121314151617181920212223242526272829303132333435363738...
^^
15 = position 20
첫 번째 출현은 소수 45
에서 시작합니다 4th
.
Position
0000000001111111111222222222233333333334444444444555555555566666666
1234567890123456789012345678901234567890123456789012345678901234567
^
0.1234567891011121314151617181920212223242526272829303132333435363738...
^^
45 = position 4
따라서 작업이 쉽습니다. 음수가 아닌 정수가 주어지면 Champernowne 상수의 정수 위치를 출력하십시오.
규칙
- 기능이나 프로그램을 제공 할 수 있습니다
- 이것은 code-golf 이므로 바이트 수가 가장 적은 제출이 승리합니다!
테스트 사례
Input: 20
Output: 30
Input: 333
Output: 56
Input: 0
Output: 11 (note that the 0 before the decimal point is ignored)
Input: 2930
Output: 48
답변
답변
답변
자바 스크립트, 57 바이트
a=prompt();for(y=b=" ";y<a+11;)b+=++y;alert(b.indexOf(a))
Conor O’Brien 덕분에 1 바이트를 절약했습니다.
답변
하스켈, 62 바이트
a#b|and$zipWith(==)a b=1|1<2=1+a#tail b
(#(show=<<[1..])).show
사용 예 : (#(show=<<[1..])).show $ 2930
-> 48
.
작동 원리 : a # b
의 위치를 찾아 a
내를 b
다음과 같은 경우 a
의 접두어 b
반환 1
, 다른 추가 1
로 재귀 호출에가 a # tail b
. pointfree 함수 (#(show=<<[1..])).show
는 (이름이없는) 인수를 기대 n
하고를 호출합니다 show n # show=<<[1..]
.
이 기능 subIndex
은의 작업을 수행 #
하지만 필요한 기능 import Data.List.Utils
은 보상하지 않습니다.
답변
루비, 28
->n{[*0..n+10]*''=~/\B#{n}/}
일치하는 항목이 색인되도록 시작 부분에 0을 포함하지만 \B
일치 항목이 문자열의 시작 부분이 아니어야합니다.
답변
apt, 11 바이트
이것은 원래 Pyth를 때리는 것이었지만 input에는 효과가 없었습니다 0
.
1+1oU+B ¬bU
작동 원리
1+1oU+B ¬ bU
1+1oU+B q bU // Implicit: U = input integer
1oU+B // Generate the range [0, U+11).
q bU // Join and take the index of U.
1+ // Add one to get the correct result.
// Implicit: output last expression
답변
루아, 54 바이트
s=""for i=1,1e4 do s=s..i end print(s:find(io.read()))
참고 : 현재이 프로그램은 문자열의 첫 번째 문자와 해당 문자가 끝나는 지점을 모두 인쇄합니다. 이것이 허용되지 않으면 몇 바이트가 더 필요합니다. 내 프로그램이 입력 번호의 첫 번째 위치와 마지막 위치를 모두 인쇄하기 때문에 보너스를 신청하고 싶습니다.