그 위에 홀수의 작은 산 사슬을 표시하십시오!


19

첫 번째 줄은 ceil(n/2)각 요소가 다음 과 같은 요소로 만들어집니다 .<space><odd-number><space>

두 번째 줄은 ceil(n/2)요소 로 만들어 지지만 각 요소 / \만 있습니다.

당신은 가정 수 n >= 0n <= 10.

입력 : 3

 1  3
/ \/ \

입력 : 10

 1  3  5  7  9
/ \/ \/ \/ \/ \

Python 3, 103 바이트의 예 :

lambda a:print("".join([" "+str(i)+" "for i in range(1,a+1,2)]+["\n"]+["/ \\"for i in range(1,a+1,2)]))

바이트 단위의 가장 짧은 코드가 승리합니다 :)


3
모든 입력 값이 11보다 작을 것이라고 가정 할 수 있습니까?
Blue

예, 모든 입력은 11보다 작습니다!
Sygmei

8
사이트에 오신 것을 환영합니다! code-golf 의 기본값은 문자가 아닌 바이트 단위로 계산하는 것입니다. 당신이 그것을 무시하고 싶다면, 그것은 당신의 선택입니다. 또한, 나는 다음에 샌드 박스를 추천 할 것입니다 :)
Outgolfer Erik

나는 당신이 옳은 바이트를 의미했습니다! 좋은 바이트 카운터가 있습니까?
Sygmei

1
공백을 어떻게 구체적으로 처리해야합니까? 각 요소는 <space><odd-number><space>이지만 테스트 사례에는 마지막 홀수 뒤에 공백이 없습니다. 선택적입니까? 또한 n=0두 개의 빈 줄에 대한 출력 입니까?
xnor

답변:


12

05AB1E , 19 15 14 12 바이트

05AB1E는 CP-1252 인코딩을 사용합니다. Adnan
덕분에 4 바이트를 절약했습니다 . 카루소 컴퓨팅 덕분에 2 바이트 절약

ÅÉðìDg…/ \×»

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

설명

ÅÉ               # list of uneven number up to input
  ðì             # prepend a space to each
    Dg           # get length of list
      …/ \       # push the string "/ \"
          ×      # repeat the string length-list times
           »     # join rows by spaces and columns by newlines

Ï얼마나 오래 있었습니까?! 그것은 유용한 것으로 보인다.
매직 문어 Urn

2
@carusocomputing 오랜 시간 : p
Adnan

2
LDÉÏ과 동일 ÅÉ하고 „ ýðì교체 할 수 있습니다 ðì)»:).
Adnan

2
를 제거 )할 수 있습니까?
Magic Octopus Urn

3
ÅÉðìDg…/ \×»다른 바이트 저장 Dg대신 사용 합니다 ¹;î.
매직 문어 Urn

11

파이크, 16 바이트

S2%idm+dJil*"/ \

여기 사용해보십시오!

17 바이트 이상

S2%i`~Bd.:il*"/ \

여기 사용해보십시오!

첫 번째 줄이 올바르게 정렬되도록 IMHO AWESOME 알고리즘을 사용합니다.

S                 - range(1, input+1)
 2%               -  ^[::2]
   i              -   i = ^
    `             -    str(^)
     ~Bd.:        -     ^.translate("><+-.,[]", " ") <-- awesome bit here
          il      -  len(i)
            *"/ \ - ^ * "/ \"

이렇게하면 문자열 화 된 목록의 모든 문자가 공백으로 바뀝니다. ~BBrain **** 언어의 모든 문자를 포함하며이 변수를 사용한 것은 이번이 처음입니다.

프로그램 `~Bd.:은 다음을 수행합니다.

`~Bd.: - input = [1, 3, 5, 7]
`      - str(input)  # stack now ["[1, 3, 5, 7]"]
 ~B    - "><+-.,[]"  # stack now ["[1, 3, 5, 7]", "><+-.,[]"]
   d   - " "         # stack now ["[1, 3, 5, 7]", "><+-.,[]", " "]
    .: - translate() # stack now [" 1  3  5  7 "]

... 이거 정말 대단해? 당신은 당신이 05AB1E와 모든 사람을 이겼다는 것을 알고 있습니까?
Outgolfer Erik

나는 젤리를 시도했다; 확실히 훨씬 더 길 것입니다.
Outgolfer Erik

"BF 문자셋을 사용하여 숫자 배열을 균등하게 배치했습니다."당신이 생각하지 못했던 것들 ...
ETHproductions

이것은 정말 영리합니다 :) 잘
했음

@ErikGolfer エ リ ッ ク ゴ ル フ ァ ー 더 이상 05AB1E를 때리지 않습니다.
boboquack

6

파이썬 2, 63 바이트

lambda n:' '.join(n%2*`n`for n in range(n+1))+'\n'+-~n/2*'/ \\'

첫 번째 줄에 대한 작은 트릭 : 짝수를 인쇄하지 않지만 빈 문자열로 가져와 빈 공간으로 시작합니다 (0이있을 것입니다). 단점은 짝수의 선행 공간입니다 n


6

파이썬 2 3, 67 65 63 60 바이트

여기에 너무 미친 것은 없지만 첫 번째 섹션을 더 짧게 할 수 있다고 생각하지만 어떻게 해야할지 모르겠습니다 . 이 경우에는 효과 -~n/2가 있다는 사실을 사용합니다 ceil.

lambda n:-~n//2*' %d '%(*range(1,n+1,2),)+'\n'+-~n//2*'/ \\'

다음은 Python 2의 대안 61 및 65 바이트 솔루션입니다.

lambda n:-~n/2*' %d '%tuple(range(1,n+1,2))+'\n'+-~n/2*'/ \\'
lambda n:' '+'  '.join(map(str,range(1,n+1,2)))+'\n'+-~n/2*'/ \\'

2 바이트를 절약 한 Rod와 버전을 전환하여 다른 바이트를 절약하는 Artyer에게 감사합니다. :)


파이썬 3로 이동하는 경우, 당신은 대체 할 수 %(tuple(...))와 함께 %[*...],하지만 당신은해야 할 것-~n//2
Artyer

@Artyer 이것을 시도했지만 많은 오류가 발생합니다. 내가 생각하는 내가 캐스트에 필요 range3 개의가 있기 때문에 목록에 range파이썬 2의 것과 같다 xrange.
Kade

tuple()
Rod

(*<iterable>,)파이썬 3에서 튜플 캐스트를 할 수 있습니다. 파이썬 3으로 n/2n//2
바꾸면

@로드와 Artyer는 많은 감사합니다! :)
Kade

6

자바 스크립트 (ES6), 55 바이트

f=n=>n%2?f(n-1).replace(`
`,` ${n} 
/ \\`):n?f(n-1):`
`
<input type=number min=1 max=10 oninput=o.textContent=f(this.value)><pre id=o>

두 번째 줄 끝에 공백이 있습니다.


Dangit, 나는 .replace더 나을지도 모른다고 생각 했지만 확인을 귀찮게하지 않았다 ...
ETHproductions

질문은 "당신 가정 할 수 있습니다 ..."
Solomon Ucko

1
@SolomonUcko HTML은 답의 일부가 아니며 단지 동작을 보여줄뿐입니다. 따라서 결과가 그렇지 않으면 유효하지 않으므로 값을 1과 10 사이로 제한 할 수도 있습니다.

내가 참조. 그렇지 않으면 올바른 간격을 결정해야합니다.
Solomon Ucko

5

파이썬 2, 53 바이트

lambda n:" 1  3  5  7  9"[:-~n/2*3]+'\n'+-~n/2*"/ \\"

n <= 10하드 코드 된 문자열에서 조각을 잘라내어 최상위 라인을 생성 하는 제한 사항 을 이용합니다.

1에서 10까지의 출력은

 1 
/ \
 1 
/ \
 1  3 
/ \/ \
 1  3 
/ \/ \
 1  3  5 
/ \/ \/ \
 1  3  5 
/ \/ \/ \
 1  3  5  7 
/ \/ \/ \/ \
 1  3  5  7 
/ \/ \/ \/ \
 1  3  5  7  9
/ \/ \/ \/ \/ \
 1  3  5  7  9
/ \/ \/ \/ \/ \

0의 출력은 두 개의 빈 줄입니다.


5

Vim, 73 59 56 바이트

이것은 단순한 문제처럼 보이는 것에 대해 실제로 높은 바이트 수의 IMO입니다. 나는 분명한 것이 빠진 것 같은 느낌이 든다.

caw="/2*2
caw1357911/"
DYp:s;.;/ \\;g
k:s// & /g

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

인쇄 할 수없는 항목 :

^Acaw^R=^R"/2*2      # Transform a number into the next odd number (3->5,4>5)
^[^Acaw1357911^[/^R" # Insert 1357911, delete everything after the number above
DYp:s;.;/ \\;g       # Duplicate the line, replace numbers with / \
k:s// & /g           # On the line above, add spaces around numbers
<trailing newline>

좋아, 나는 항상 vim을 옹호했다! 그러나 인쇄 할 수없는 문자도 바이트로 계산되므로이 솔루션은 실제로 73 바이트입니다. 미안합니다!
DJMcMayhem

그러나 몇 가지 팁이 있습니다. 1) 대체 명령에 다른 분리기를 사용하는 경우 슬래시를 이스케이프 처리하지 않아도되므로 할 수 있습니다 :s;.;/ \\;g. 2) 두 번째 대체 명령에서 검색을 비워두면 마지막 검색이 사용됩니다 (마찬가지로 동일합니다). 또한 1 바이트 더 짧거나 &같습니다 \0. 그래서 당신은:s// & /g
DJMcMayhem

감사! 더 적은 바이트에 다른 접근 방식을 사용했는지 확인하기 위해 V 답변을보고 싶었지만 괜찮습니다! 첫 번째 의견은 온라인 사용해보기 링크를 업데이트하지 않는 기능입니다. 두 번째는 3 바이트를 얻었으므로 감사합니다!
nmjcman101

4

Mathematica, 65 바이트

" "<>Range[1,#,2]~StringRiffle~"  "<>"
"<>"/ \\"~Table~⌈#/2⌉&

익명의 기능. 숫자를 입력으로 사용하고 문자열을 출력으로 반환합니다. 유니 코드 문자는 각각 U + 2308 LEFT CEILING for \[LeftCeiling]및 U + 2309 RIGHT CEILING for \[RightCeiling]입니다.


4

WinDbg, 100 바이트

.echo;.for(r$t1=1;@$t1<=2*@$t0+@$t0%2;r$t1=@$t1+2){j@$t1<=@$t0 .printf"\b %d \n",@$t1;.printf"/ \\"}

의사 레지스터에 값을 설정하여 입력을 수행합니다 $t0.

먼저 문자열을 작성하고 전체를 표시하는 대신 문자열을 인쇄하는 것이 가장 짧은 것처럼 보입니다. WinDbg가 address to write 할 수 있다면 더 짧은 솔루션을 원할 것 0입니다.

작동 방식 :

.echo;                                            * Print a new line that'll be deleted
.for(r$t1=1; @$t1 <= 2*@$t0+@$t0%2; r$t1=@$t1+2)  * Enumerate 1 to 4*ceil($t0/2), count by 2
{
    j@$t1<=@$t0                                   * If $t1 <= $t0...
        .printf"\b %d \n",@$t1;                   * ...Print $t1 (and newline for last n)
        .printf"/ \\"                             * ...Else print the / \'s
}

각 값에 대한 출력 n:

0:000> .for(r$t0=0;b>@$t0;r$t0=@$t0+1){.printf"\n\nn=%d\n",@$t0; .echo;.for(r$t1=1;@$t1<=2*@$t0+@$t0%2;r$t1=@$t1+2){j@$t1<=@$t0 .printf"\b %d \n",@$t1;.printf"/ \\"}}


n=0



n=1
 1 
/ \

n=2
 1 
/ \

n=3
 1  3 
/ \/ \

n=4
 1  3 
/ \/ \

n=5
 1  3  5 
/ \/ \/ \

n=6
 1  3  5 
/ \/ \/ \

n=7
 1  3  5  7 
/ \/ \/ \/ \

n=8
 1  3  5  7 
/ \/ \/ \/ \

n=9
 1  3  5  7  9 
/ \/ \/ \/ \/ \

n=10
 1  3  5  7  9 
/ \/ \/ \/ \/ \

4

> <> (FISH), 69 60 68 55 바이트

5|v&+%1:,2
1->:?!v:
8~v!?l<on$o:*4
a&/o
1->:?!;"\ /"ooo

이 온라인 통역사에 붙여 넣으십시오!

첫 번째 줄의 숫자 5는 입력 값입니다 (하드 코딩 된 5, 사용자 입력의 경우 0-a 또는 i로 바 replaced).

편집 1 : 줄 바꿈을 첫 줄 공간으로 옮겼습니다 (비어 있음). 새 줄의 공간에 전체적으로 9 바이트를 절약합니다.

편집 2 : user7150406에서 알 수 있듯이 출력이 잘못되었습니다 (공백이 인쇄되지 않음) 이것은 8 바이트 손실로 수정되었습니다.

편집 3 : 논리를 완전히 변경했습니다. 숫자가 홀수인지 여부를 확인하는 포인트가 없습니다. 대신 모든 숫자를 스택에 넣고 매 초마다 제거하십시오. 바이트 절약 13!


4

자바, 118112 바이트

편집 : @peech 덕분에 6 바이트를 절약했습니다.

골프 :

String M(int n){String o=" ";int i=1;n+=1;for(;i<n;i+=2)o+=i+"  ";o+="\n";for(i=0;i<n/2;i++)o+="/ \\";return o;}

언 골프 드 :

public String M(int n)
{
    String o = " ";
    int i=1;
    n += 1;
    for (; i < n;i+=2)
        o += i + "  ";
    o += "\n";
    for (i = 0; i < n/2; i++)
        o += "/ \\";
    return o;  
}

테스트 :

    OddMountains om = new OddMountains();
    System.out.println(om.M(1));
    System.out.println();
    System.out.println(om.M(3));
    System.out.println();
    System.out.println(om.M(5));
    System.out.println();
    System.out.println(om.M(7));
    System.out.println();
    System.out.println(om.M(10));

 1  
/ \

 1  3  
/ \/ \

 1  3  5  
/ \/ \/ \

 1  3  5  7  9  
/ \/ \/ \/ \/ \

아아, 당신은 나를 이겼다 :) 나는 또한 Java 답변을 게시하고 싶었다. 어쨌든, 여기에 좀 더 골프를 치는 몇 가지 제안이 i있습니다. 첫 번째 for 루프에서 초기화 할 필요가 없습니다 for(; i < n; i++). 이 변경 o += i + " ";사항으로 더 골프를 칠 수 있습니다 . o += i++ + " ";및 for 루프가 변경 됩니다 for(; i < n; ). if 문을 유지하려는 경우입니다. i의 증가분을 변경 i += 2 하고 전체 if 문을 삭제할 수 있지만이 경우 두 번째 제안은 적용되지 않습니다. : (ps : 나는 이것을 테스트하지
않았습니다

@peech 위안이라면 일반적으로 첫 번째 C # 답변을 얻는 경쟁입니다. 사라지면 Java 답변을 통해 혼란을 겪습니다. 팁을 주셔서 감사합니다. 에서 i초기화를 제거 했습니다for루프 했지만 다른 것들은 루프에 붙어 있습니다. 나는 그것으로 조금 더 :) 놀러해야 할 수도 있습니다
피트 아덴

허, 나는 이전의 의견에서 "나는 이것을 테스트하지 않았다"고 말하게되어 기쁘다. 물론 o += i++ + " ";:) 와는 작동하지 않는다 . Btw, Java에는 floor()정수 나누기 (4/3 = 1)를 사용하기 때문에 코드에 작은 버그가 있습니다 int i = 1; n += 1; for (; i < n; i += 2) { ... jada jada ... }. i를로 증가 i += 2시키면 if 문을 검사하여 패리티를 검사 할 필요가 없습니다. 그것은 또한 3 바이트를 더 절약합니다 :) 여기에서 시도해보십시오 : ideone.com/ekaUUH
peech

@peech 누군가가 내 코드를 수정하기에 충분히 자신감이 있다면 코드가 옳 아야한다고 생각하므로 작동하지 않을 때마다 "나 여야 만한다고 생각합니다 ...":) 걱정하지 마십시오! 팁 주셔서 감사합니다 - 나는 발견 floor: 며칠 전에 일부 Java와 함께 연주 할 때 부서가 자신을 특질
피트 아덴을

3

C # 6, 95 바이트

n=>{var o="";int i=1;for(;i<=n;i+=2)o+=$" {i} ";o+='\n';for(i=1;i<=n;i+=2)o+="/ \\";return o;};

전체 람다 :

Func<int, string> a = n=>
{
    var o="";int i=1;
    for(;i<=n;i+=2)
        o+=$" {i} ";
    o+='\n';
    for(i=1;i<=n;i+=2)
        o+="/ \\";
    return o;
};


3

게임 메이커 언어 (GM 8.0), 97 바이트

m=ceil(argument0/2)e=""for(i=1;i<2*m;i+=2)e+=" "+string(i)+" "return e+"#"+string_repeat("/ \",m)

입력 수가 최대 10 인 chr(48+i)경우 string(i)바이트 수는 동일하지만 대신 작동 합니다.

읽을 수있는 :

m = ceil(argument0/2)
e = ""
for (i = 1; i < 2*m; i += 2 )
  e += " " + string(i) + " "
return e + "#" + string_repeat("/ \", m)


3

> <> (물고기) 52 63 62 바이트

<v!?:-1:!?-1%2:
 >~la}}" "72.
v!?-2lno<o"  "
o
>:?!;"\ /"ooo1-

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

간단하게 사용하려면 n 스택 멀리 !

이것의 대부분은 @ Teal-Pelican의 답변에서 가져온 것입니다 :).

편집 :> <> 제출에서 출력이 실제로 올바르게 정렬되지 않았습니다! 고정...

Edit2 : 몇 바이트를 희생해야했지만 출력은 실제로 정확합니다.

Edit3 : 더 이상 재미 없어 \ / 거울로 1 바이트를 절약합니다.

산출:

 1  3  5  7  9
/ \/ \/ \/ \/ \

인쇄 오류를 발견해 주셔서 감사합니다. 지금 답변을 편집하고 있습니다.
청록 펠리칸

문제 없습니다.> <> 제출물을 보게되어 기뻤습니다! 이 변화로 인해 어느 것이 더 작아 졌는지 알면 흥미로울 것입니다.
redstarcoder

내가 5 바이트 작게 juuuust 것 같습니다 : p.
redstarcoder

나는 내가 ate를 몇 바이트를 짜낼 수 있는지 알기 위해 지금 내 것을 다시 볼 것입니다.
청록 펠리컨

1
나는 집에 돌아와서 새로운 길을 갈 생각을했다. 나의 새로운 대답은 55 바이트입니다! : D-이 작업을 해주셔서 감사합니다. 재밌었습니다.
청록 펠리컨

2

C, 100 79 77 바이트

#define P(s)for(i=0;i++<n;printf(s,i++));puts("");
i;f(n){P(" %d ")P("/ \\")}

2

R, 70 69 68 58 바이트

cat(paste("",z<-seq(,scan(),2)),"\n");for(i in z)cat("/ \\")

3:
#>  1  3 
#> / \/ \

10:
#>  1  3  5  7  9 
#> / \/ \/ \/ \/ \

2

세게 때리다, 64, 59, 57, 51, 49, 48, 45 바이트

편집하다:

  • 빼기 3 바이트 (STDIN 대신 $ 1 사용)
  • 로 교체 -s ""하여 하나 더 바이트 오프-s\
  • printfseq -f (감사 @Adam!) 로 바꿔서 2 바이트 빼기
  • 함수 대신 스크립트로 리팩토링 됨 ( > <> 을 이길 수 있음 )
  • 불필요한 공간 제거
  • sed 표현을 조금 최적화

골프

청크 (45 바이트) :

seq -f" %g " -s\  1 2 $1|sed 'p;s| . |/ \\|g'

기능 (원본 버전) (57 바이트) :

M() { printf " %s %.0s" `seq 1 $1`|sed 'p;s| . |/ \\|g';}

테스트

--- mountains.sh ----
#!/bin/bash
seq -f" %g " -s\  1 2 $1|sed 'p;s| . |/ \\|g'

>./mountains.sh 10
 1  3  5  7  9 
/ \/ \/ \/ \/ \

>M 10
 1  3  5  7  9 
/ \/ \/ \/ \/ \

2
sed화려한이다. 함수 나 printf를 사용하지 않으면 10 바이트를 절약 할 수 있습니다.seq -f" %g " -s "" 1 2 $1|sed 'p;s| . |/ \\|g'
Adam

좋은 조언입니다! 감사합니다 ! 나는 여전히 catSTDIN에서 입력을 읽는 데 사용 합니다. IMO는 데이터를 전달하기 위해 사전 정의 된 변수를 사용하는 것이 실제로 공정하지 않습니다.
zeppelin

1
$1프로그램으로 전송 된 첫 번째 매개 변수입니다. 나는 그것이 속임수라고 생각하지 않는다 meta.codegolf.stackexchange.com/questions/2447/…
Adam

네, 맞습니다. 다시 감사합니다!
zeppelin


2

루비 82 60 바이트

내가 루비에 더 좋으면 빠르고 더러운 루비 솔루션은 확실히 더 잘 최적화 될 수 있습니다.

puts "",1.step($*[0].to_i,2).map{|x|$><<" #{x} ";"/ \\"}*""

사용법 : prog.rb 10
출력 :

 1  3  5  7  9
/ \/ \/ \/ \/ \

편집 : @Manatwork에 의한 수많은 편집 및 최적화!


print$><<문자열 보간을 사용하십시오 " #{x} ". 그러나 가장 좋은 방법은 .each콜백에서 직접 첫 번째 줄을 출력하고 변수에 두 번째 줄을 작성하여 수를 줄이는 것 s="";(1..$*[0].to_i).step(2){|x|$><<" #{x} ";s+="/ \\"};puts"",s입니다. 또는 심지어 puts"",(1..$*[0].to_i).step(2).map{|x|$><<" #{x} ";"/ \\"}*"".
manatwork

Numeric#step2 개의 매개 변수를 허용하므로 괄호가 필요한 긴 범위 구문을 피할 수 있습니다. (1..$*[0].to_i).step(2)1.step($*[0].to_i,2).
manatwork

@manatwork 정말 좋은 제안! 미래의 codegolf 게시물에서 많은 조언을 사용하고 있음을 알 수 있으므로 입력에 감사드립니다.
Ben Hili

1

자바 스크립트 (ES6), 66 64 바이트

n=>(f=n=>n?f(n-1)+(n%2?n+s:s):s=" ")(n)+`
`+"/ \\".repeat(++n/2)

첫 번째 줄을 재귀 적으로 만든 다음 두 번째 줄을 추가합니다. 첫 번째 줄은 각 항목 n 이 짝수 인 경우 공백으로 변환되거나 홀수 인 경우 n 과 공백으로 연결된 범위 [0 ... n] 의 범위라는 관찰로 작성 됩니다.


1

파이썬 2, 60 바이트

@Kade 덕분에 6 바이트가 절약되었습니다!

lambda s:" "+"  ".join(`range(s+1)`[4::6])+"\n"+-~s/2*"/ \\"

list()캐스트 를 사용할 필요가 없습니다. 캐스트를 제거하면 60으로 이동합니다.
Kade

@Kade 백틱은````문자열로 만듭니다. 나는 그것이 lambda s:" "+" ".join(range(s+1)[1::2])+"\n"+-~s/2*"/ \\"eint의리스트를 줄 것이고 그렇게 죽기 때문에 그렇게 할 수 없다
Oliver Ni


@ 케이드 허. 온라인에서 작동하지 않습니다 ... 걱정하지 마십시오. 왜 작동하지 않는다고 생각하는지 모르겠습니다 ...
Oliver Ni

1

배치, 107 바이트

@set s=
@set t=
@for /l %%i in (1,2,%1)do @call set s=%%s%%  %%i&call set t=%%t%%/ \
@echo%s%
@echo %t%

1

스칼라, 99 95 바이트

(? :Int)=>for(i<-0 to 1)println(1 to ?filter(c=>c%2>0)map(c=>if(i<1)s" $c "else"/ \\")mkString)

언 골프

(? :Int) => 
    for (i<-0 to 1)
        println(
            1 to ?filter(c=>c%2>0)
                  map(c=>if(i<1)s" $c "else"/ \\")
                  mkString
        )

1

루비, 48 바이트

->x{" 1  3  5  7  9 "[0..3*x-=x/2]+?\n+"/ \\"*x}

1

옥타브, 45 바이트

f=@(n)reshape(sprintf(' /%d \',1:2:n),2,[]);

테스트 :
f (8)

 1  3  5  7
/ \/ \/ \/ \

입력 = 0 일 때 / 왼쪽이 있습니다 :)
Sygmei

귀하의 답변이 정확하지 않다고 말하지 않았습니다! 방금 작은 재밌는 결함을 발견했습니다 :)
Sygmei

나는 n == 0이라고 가정 할 수 없다 :(
rahnema1

1

QBIC , 35 바이트

:[1,a,2|X=X+!b$+@ | Y=Y+@/ \|]?X ?Y

설명:

:           gets a CMD line param as INT 'a'
[1,a,2|     FOR b = 1 to a STEP 2
X=X+!b$+@ | Add to X$ the counter of our FOR loop and a trailing space
            Leading space is provided by the cast-to-string function.
Y=Y+@/ \|   Add to Y$ the mountain.
]           Close the first possible language construct (IF, DO or FOR). In this case: NEXT
?X ?Y       Print X$, Print Y$. The space adds a newline in the resulting QBASIC.

0

키타 나이 , 140 바이트

$0[0]$1[int(input":")]$2[""]$3[""]$0#?(mod@2)($2[add(add(@" ")(string($0@)))"  "]
$3[add@"/ \"])?(neq@($1@))([add@1]&1)print($2@)print($3@)%

0

Perl, 46 + 2 ( -pl플래그) = 48 바이트

@_=map$_%2?$_:"",0..$_;$_="@_$/"."/ \\"x(@_/2)

사용 :

perl -ple '@_=map$_%2?$_:"",0..$_;$_="@_$/"."/ \\"x(@_/2)' <<< 7    

또는 52 바이트 :

@_=map$_%2?$_:"",0..pop;print"@_$/","/ \\"x(@_/2),$/

사용 :

perl -e '@_=map$_%2?$_:"",0..pop;print"@_$/","/ \\"x(@_/2),$/' 7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.