사람들을 세어보세요! 가정 할 수 있습니다 . 당신은

소개

이상하게 들릴지 모르지만까지 1에 대한 계산에 대한 도전은 하나도 없습니다 n.

이것은 같은 것이 아닙니다. 그것은 잘 설명되지 않은 (닫힌) 도전입니다.
이것은 같은 것이 아닙니다. 그것은 무기한 계산에 관한 것입니다.

도전

모든 정수 1n포함 하는 프로그램 또는 함수를 작성하십시오 .

규칙

  • 당신은 n어떤 방법 으로든 얻을 수 있습니다 .
  • n항상 양의 정수 라고 가정 할 수 있습니다 .
  • 당신은 n어떤 기초에 들어갈 수 있지만 항상 10 진수로 출력해야합니다.
  • 에없는 문자 (또는 패턴)로 출력을 분리해야합니다 0123456789. 10 진이 아닌 선행 또는 후행 문자가 허용됩니다 (예 :와 같은 배열을 사용하는 경우 [1, 2, 3, 4, 5, 6]).
  • 표준 허점은 거부됩니다.
  • 우리는 가장 짧은 언어가 아닌 각 언어에서 가장 짧은 접근법을 찾고 싶습니다. 그래서 나는 대답을 받아들이지 않을 것입니다.
  • 이 편집 후에 답변을 업데이트해야합니다. 마지막 편집 전에 게시 된 답변은 표준 허점에 대한 변경 규칙을 준수해야합니다 (거부하고 싶지는 않지만 커뮤니티를 포효하고 싶지는 않습니다. 나는 그들을 거부했다).
  • 데이트 후 언어 버전 (또는 언어)을 사용할 수 있습니다. 이 도전을 위해 만들어진 언어 또는 언어 버전을 사용할 수 없습니다.

보너스

20 %

  • 프로그램은 최소한 18446744073709551615( 2^64-1) 까지 셀 수 있어야합니다 . 예를 들어, 새로운 데이터 유형이 큰 정수를 지원하는 유일한 방법 인 경우이를 구성해야합니다. 언어에 2 ^ 64-1까지의 큰 정수를 지원할 방법이없는 경우 해당 언어의 상한을 대신 지원해야합니다.

편집 : 나는에서 제한 변경했습니다 2^64에 대한 2^64-1추가 답변을 허용 할 수 있습니다.

편집 :이 도전에별로 관심이 없었기 때문에 2 ^ 64-1 규칙을 보너스로 만들었습니다. 답변이 2 ^ 64-1을 지원하는 경우 보너스를 포함하도록 편집 할 수 있습니다. 또한 더 짧은 경우 답변을 지원하지 않는 답변을 게시 할 수 있습니다.



답변

MarioLANG , 29 바이트

;
)    <
+===="
>:(-[!
=====#

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

내 코드가 슬프게도 슬프거나 화난 것을 알고 있습니다.


> :(

해피 마리오 랑, 46 바이트

;
)       <
+======="
>  >((-[!
=:)^====#
 ===

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

더 행복한 접근법 :



 :)

감성적이지 않은 MarioLANG, 41 바이트

;
)     <
+====="
> >(-[!
= "===#
 :!
 =#

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


답변

Pyth, 1 바이트

S

본문은 30 자 이상이어야합니다. 당신은 14를 입력했습니다.


답변

잼, 5 바이트

{,:)}

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

이것은 n스택에서 예상 하고 범위가있는 목록을 남기는 명명되지 않은 블록입니다 [1...n].
범위를 구축 ,한 다음 모든 범위 요소를 증분 :)하여 범위를 단일 기반으로 만듭니다.


답변

Mathematica, 5 바이트

Range

충분히 간단합니다.


답변

Hexagony, 19

$@?!{M8.</(=/>').$;

Or in the expanded hexagon format:

  $ @ ?
 ! { M 8
. < / ( =
 / > ' )
  . $ ;

Huge thanks to Martin for basically coming up with this program, I just golfed it to fit in a side length 3 hexagon.

Try it online!

Timwi의 환상적인 Hexagony 관련 프로그램이 없으므로이 설명은 매우 화려하지 않습니다. 대신, 거대한 텍스트를 읽을 수 있습니다. 멋지지 않습니까?

어쨌든, $이 프로그램이 북쪽이지도를 향하고있는 것으로 생각되면 IP는 왼쪽 상단에서 시작하여 동쪽으로 이동합니다. 는 $것 다음 명령 건너 우리를 일으키는 @프로그램을 끝낼 것입니다. 대신 ?현재 메모리 에지를 입력 번호로 설정하는 실행 합니다. 이제 우리는 줄의 끝 부분에 도달하여 육각형의 가운데 줄로 이동하여 여전히 동쪽으로 이동합니다.

Most of the rest of the program is a loop. We start with . which is a no-op. Next we encounter a fork in the… uh… hexagon… the < instruction causes the IP to rotate 60 degrees to the right if the current memory edge is positive, otherwise we rotate 60 degrees left. Since we are moving Eastward, we either end up with our heading being South or North East. Since the input is greater than zero (and hence positive) we always start by going South East.

Next we hit a > which redirects us Eastward; these operators only fork if you hit the fork part. Then we hit ' which changes what memory edge we are looking at. Then we hit ) which increments the value of the current memory edge. Since all memory edges start at 0, the first time we do this we get a value of 1. Next we jump up to the second to top line and execute ! which prints out our number. Then we move to another edge with { and store the ASCII value of M multiplied by 10 plus 8 (778). Then we jump back to the second to last line of the hexagon, and hit the /. This results in us moving North West. We go past the . on the middle row, and come out on the ; at the bottom right. This prints out the current memory edge mod 256 as ASCII. This happens to be a newline. We hit ' which takes us back to the first edge that has the value we read in. The we hit / which sets us to move Eastward again. Then we hit ( which decrements the value. = causes us to face the right direction again for the future memory edge jumping.

Now, since the value is positive (unless it is zero) we go back to the bottom of the hexagon. Here we hit . then we jump over the ; so nothing happens, and we go back to the start of the loop. When the value is zero we go back to the beginning of the program, where the same stuff happens again but ? fails to find another number, and we take the other branching path. That path is relatively simple: we hit { which changes the memory edge, but we don’t care anymore, then we hit @ which ends the program.


답변

MATL, 1 byte

:

Example output:

15
1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

Try it online here