Mostra una catena di piccole montagne con un numero dispari sopra di essa!


19

La prima riga è composta da ceil(n/2)elementi in cui ogni elemento è:<space><odd-number><space>

La seconda riga è composta da ceil(n/2)elementi, ma ogni elemento è / \solo.

Puoi assumere n >= 0e n <= 10.

Esempi

Ingresso: 3

 1  3
/ \/ \

Ingresso: 10

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

Esempio in Python 3, 103 byte:

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

Il codice più corto in byte vince :)


3
Puoi presumere che tutti gli input saranno inferiori a 11?
Blu,

Sì, tutti gli input saranno inferiori a 11!
Sygmei,

8
Benvenuti nel sito! Il nostro valore predefinito per code-golf è contare in byte, non in caratteri. Se vuoi sovrascriverlo, però, è la tua scelta. Inoltre, consiglierei il Sandbox la prossima volta :)
Erik the Outgolfer,

Intendevo dire che hai ragione! C'è un buon contatore di byte in giro?
Sygmei,

1
In che modo dobbiamo gestire gli spazi bianchi? Dici che ogni elemento è <space><odd-number><space>, ma i casi di test non hanno uno spazio dopo l'ultimo numero dispari. È opzionale? Inoltre, è l'output per n=0due righe vuote?
xnor

Risposte:


12

05AB1E , 19 15 14 12 byte

05AB1E utilizza la codifica CP-1252 .
Salvati 4 byte grazie ad Adnan .
Salvato 2 byte grazie al carusocomputing

ÅÉðìDg…/ \×»

Provalo online!

Spiegazione

ÅÉ               # 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

QUANTO ÏESISTE ?! Sembra molto utile.
Magic Octopus Urn il

2
@carusocomputing Tanto tempo: p
Adnan,

2
LDÉÏè uguale ÅÉe „ ýðìpuò essere sostituito da ðì)»:).
Adnan,

2
Puoi rimuovere il ), no?
Magic Octopus Urn,

3
ÅÉðìDg…/ \×»utilizza Dginvece di ¹;îsalvare un altro byte.
Magic Octopus Urn,

11

Pyke, 16 byte

S2%idm+dJil*"/ \

Provalo qui!

17 byte e altro fantastico

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

Provalo qui!

Questo utilizza IMHO un algoritmo FANTASTICO per assicurarsi che la prima riga sia correttamente allineata.

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

Ciò sostituisce tutti i caratteri nell'elenco con stringhe con spazi. ~Bcontiene tutti i caratteri nel linguaggio Brain **** e questa è la prima volta che utilizzo questa variabile.

Il programma `~Bd.:fa questo:

`~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 "]

... questo è ... semplicemente fantastico? Sai che hai appena battuto 05AB1E e tutti, giusto?
Erik the Outgolfer,

Ho provato Jelly; sarà sicuramente molto più lungo.
Erik the Outgolfer,

"Ho usato il set di caratteri BF per spaziare uniformemente una serie di numeri" Le cose che non avresti mai pensato di dire ...
ETHproductions

È davvero intelligente :) Ben fatto
Sygmei,

@ErikGolfer エ リ ッ ク ゴ ル フ ァ ー Non battere più 05AB1E.
Boboquack,

6

Python 2, 63 byte

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

Piccolo trucco per la prima riga: non stampa i numeri pari, ma li prende come una stringa vuota, che porta all'inizio dello spazio vuoto (0 sarebbe lì) e raddoppia gli spazi tra i numeri senza alcuna modifica sull'intervallo, il rovescio della medaglia è uno spazio di testa nel numero pari n


6

Python 2 3, 67 65 63 60 byte

Niente di troppo folle qui, penso che la prima sezione possa essere probabilmente più breve ma non sono sicuro di come . Uso il fatto che in questo caso -~n/2funzionerà per ceil.

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

Di seguito sono riportate soluzioni alternative a 61 e 65 byte in Python 2:

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*'/ \\'

Grazie a Rod per aver salvato 2 byte e Artyer per aver salvato un altro byte cambiando versione :)


Se passi a Python 3, puoi sostituirlo %(tuple(...))con %[*...], ma dovresti farlo-~n//2
Artyer,

@Artyer Ho provato questo, ma genera un sacco di errori. Penso che dovrei fare il cast rangein una lista perché 3 rangeè come Python 2 xrange.
Kade,

puoi anche rilasciare le parentesi che circondano iltuple()
Rod

Puoi eseguire il (*<iterable>,)cast per la tupla in Python 3. Ciò consente di risparmiare 1 byte dopo aver effettuato la n/2n//2
conversione

@Rod e Artyer grazie mille! :)
Kade,

6

JavaScript (ES6), 55 byte

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>

Nota lo spazio alla fine della seconda riga.


Dangit, ho pensato che .replacepotesse essere migliore, ma non mi sono preoccupato di controllare ...
ETHproductions

La domanda dice "si può assumere ..."
Solomon Ucko

1
@SolomonUcko L'HTML non fa parte della risposta, serve semplicemente a dimostrarne il funzionamento. Pertanto, potrebbe anche limitare il valore tra 1 e 10, poiché altrimenti il ​​risultato non sarebbe valido.
Neil,

Vedo. Dovresti determinare la spaziatura corretta altrimenti
Solomon Ucko,

5

Python 2, 53 byte

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

Sfrutta la restrizione n <= 10per generare la riga superiore tagliando un pezzo da una stringa codificata.

Le uscite da 1 a 10 sono

 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
/ \/ \/ \/ \/ \

L'output per 0 è di due righe vuote.


5

Vim, 73 59 56 byte

Si tratta di un IMO con un numero di byte davvero elevato per quello che sembra un semplice problema. Sento che mi manca qualcosa di ovvio.

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

Provalo online!

Unprintables:

^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>

Bello, ho sempre votato Vim! Tuttavia, anche i caratteri non stampabili contano come byte, quindi questa soluzione è in realtà 73 byte. Mi dispiace per quello!
DJMcMayhem

Ho alcuni consigli comunque. 1) Se usi un altro separatore nel tuo comando sostitutivo, non dovrai sfuggire alla barra, quindi puoi farlo :s;.;/ \\;g. 2) al tuo secondo comando sostitutivo, puoi lasciare vuota la ricerca e userà la tua ultima ricerca (che per caso è la stessa). Inoltre, &equivale a \0un byte più breve. Quindi ottieni:s// & /g
DJMcMayhem

Grazie! Speravo di vedere una tua V risposta per vedere se hai usato un approccio diverso per meno byte, ma va bene così! Il primo commento, credo, è una mia funzione che mi dimentico di aggiornare il link Provalo online. Il secondo mi ha dato 3 byte, quindi grazie!
nmjcman101,

4

Mathematica, 65 byte

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

Funzione anonima. Accetta un numero come input e restituisce una stringa come output. I caratteri Unicode, rispettivamente, sono U + 2308 SINISTRA SOFFITTO per \[LeftCeiling]e U + 2309 DESTRA SOFFITTO per \[RightCeiling].


4

WinDbg, 100 byte

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

L'immissione viene effettuata impostando un valore nello pseudo-registro $t0.

Sembra che sia il più breve qui solo per stampare la stringa mentre viene costruita piuttosto che provare a costruirla per prima e visualizzare il tutto. Avrei una soluzione più breve se WinDbg mi permettesse di scrivere all'indirizzo 0.

Come funziona:

.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
}

Output per ogni valore di 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 byte

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

Incollalo in questo interprete online!

Il numero 5 sulla prima riga è il valore di input (codificato come 5, sostituito da 0-a o i per l'input dell'utente).

Modifica 1: spostato il posizionamento della nuova riga nello spazio della prima riga (era vuoto) per salvare 9 byte complessivi nello spazio da una nuova riga.

Modifica 2: come notato dall'utente7150406, l'output era errato (nessuna stampa di spazi), questo è stato corretto con una perdita di 8 byte.

Modifica 3: completamente cambiato la logica, non ha senso verificare se il numero è dispari - piuttosto mettere tutti i numeri in pila e rimuoverne ogni secondo. Byte salvato 13!


4

Java, 118 112 byte

Modifica: 6 byte salvati grazie a @peech

golfed:

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;}

Ungolfed:

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;  
}

test:

    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  
/ \/ \/ \/ \/ \

Ahhhh, mi hai battuto :) volevo anche pubblicare una risposta Java. in ogni caso, ecco alcuni suggerimenti per giocare un po 'di più: non è necessario inizializzare inel primo ciclo, potrebbe apparire così for(; i < n; i++). Puoi giocare a golf ancora di più con questa modifica: le o += i + " ";modifiche a o += i++ + " ";e per il loop diventano for(; i < n; ). Cioè se si desidera mantenere un'istruzione if. Potresti cambiare il tuo incremento di i in i += 2 ed eliminare l'intera istruzione if, ma in quel caso la mia seconda proposizione non si applica :) (ps: non ho provato questo :))
peech

@peech Se è una consolazione, di solito è una gara per me ottenere la prima risposta in C #. Se non c'è più, mi faccio strada tra le risposte di Java :) Grazie per i suggerimenti. Ho rimosso l' iinizializzazione dal forloop, ma le altre cose l'hanno bloccato in un loop. Potrei aver bisogno di giocarci un po 'di più :)
Pete Arden,

Eh, sono così felice che nel mio precedente commento ho detto "non ho provato questo" ... ovviamente non funziona con o += i++ + " ";:). Btw, si dispone di un piccolo bug nel codice :) dal Java utilizza floor()sulla divisione di interi (4/3 = 1), si dovrebbe fare in questo modo: int i = 1; n += 1; for (; i < n; i += 2) { ... jada jada ... }. se si incrementa di i += 2, non è necessario che si verifichi la parità di verifica delle istruzioni. Inoltre salva altri 3 byte :) provalo qui: ideone.com/ekaUUH
peech

@peech Se qualcuno è abbastanza sicuro di correggere il mio codice, presumo che debba essere giusto, quindi quando non funziona, provo ancora e ancora, pensando "Devo essere io ..." :) Nessun problema! Grazie per i suggerimenti: ho scoperto la floordivisione in modo strano mentre giocavo con alcuni Java qualche giorno fa :)
Pete Arden,

3

C # 6, 95 byte

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;};

Lambda completa:

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

CJam, 26 23 byte

Sri,:)2%_S2**N@,"/ \\"*

Provalo!

-3 grazie a 8478 (Martin Ender)


Puoi salvare 3 byte evitando alcune manipolazioni dello stack: Sri,:)2%_S2**N@,"/ \\"*
Martin Ender,

@MartinEnder Oh, ecco perché non sono riuscito a rimuoverlo + . E lo giuro, l'ho usato davvero ed! ... più corto di Pyth.
Erik the Outgolfer,

3

Game Maker Language (GM 8.0), 97 byte

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

Dato che l'input è al massimo 10, chr(48+i)funzionerà al posto di string(i), sebbene il numero di byte sia lo stesso.

Leggibile:

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


3

> <> (Pesce) 52 63 62 byte

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

Provalo online!

Per usare semplicemente posto n in pila e via che vai!

Gran parte di questo è tratto dalla risposta di @ Teal-Pelican :).

Modifica: l'output in realtà non è allineato correttamente in entrambi gli invii> <>! Fissaggio...

Edit2: ho dovuto sacrificare alcuni byte, ma l'output è attualmente corretto.

Edit3: non più divertente con i \ /mirror e risparmio 1 byte.

Produzione:

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

Grazie per aver individuato l'errore nella stampa, sto modificando la mia risposta ora (abbastanza banale per la mia) è interessante vedere la base rispondere allo stesso modo, ma molti byte salva.
Pellicano verde acqua

Nessun problema, sono stato felice di vedere un invio> <>! Sarà interessante vedere quale finisce per essere più piccolo ora, poiché questi cambiamenti fanno male alla mia piuttosto ahah.
redstarcoder,

Sembra che sia più piccolo di 5 byte: p.
redstarcoder,

Vado a dare un'altra occhiata alla mia ora per vedere se riesco a spremere qualche mote byte aha.
Pellicano verde acqua

1
Sono tornato a casa e ho avuto un'idea per un nuovo modo di procedere. La mia nuova risposta è di 55 byte! : D - Grazie per avermi fatto lavorare su questo, è stato divertente.
Pellicano verde acqua

2

C, 100 79 77 byte

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

2

R, 70 69 68 58 byte

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

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

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

2

bash, 64, 59, 57, 51, 49, 48, 45 byte

MODIFICARE:

  • meno 3 byte (utilizzare $ 1 invece di STDIN)
  • un altro byte spento sostituendolo -s ""con-s\
  • meno 2 byte sostituendo printf con seq -f (Grazie @Adam!)
  • refactored allo script anziché alla funzione (per battere > <> )
  • rimosso gli spazi superflui
  • ottimizzato un po 'l'espressione sed

golfed

Chunk (45 byte):

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

Funzione (versione originale) (57 byte):

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

Test

--- 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
Il sedè brillante. Non usando una funzione né printf, si risparmiano 10 byte:seq -f" %g " -s "" 1 2 $1|sed 'p;s| . |/ \\|g'
Adam

È un bel consiglio! Grazie ! Uso ancora catper leggere l'input da STDIN, poiché IMO non è davvero corretto utilizzare una variabile predefinita per passare i dati.
zeppelin

1
$1è solo il primo parametro trasmesso al programma. Non penso che sia imbroglione, vedi meta.codegolf.stackexchange.com/questions/2447/…
Adam

Sì, hai ragione. Grazie ancora !
zeppelin,


2

Ruby 82 60 byte

La soluzione Ruby rapida e sporca potrebbe sicuramente essere ottimizzata meglio se fossi meglio con Ruby

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

Utilizzo: prog.rb 10
Output:

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

modifica: numerose modifiche e ottimizzazioni di @Manatwork!


print$><<e usa l'interpolazione di stringhe " #{x} ". Ma la cosa migliore sarebbe quella di ridurre il numero di .eachemettendo della linea 1 direttamente dalla richiamata e costruire la linea 2 in una variabile: s="";(1..$*[0].to_i).step(2){|x|$><<" #{x} ";s+="/ \\"};puts"",s. O addirittura puts"",(1..$*[0].to_i).step(2).map{|x|$><<" #{x} ";"/ \\"}*"".
arte

Numeric#stepaccetta 2 parametri, quindi può evitare la sintassi a lungo intervallo che richiede parentesi intorno: (1..$*[0].to_i).step(2)1.step($*[0].to_i,2).
arte

@manatwork davvero ottimi suggerimenti! Mi vedo usare molti dei tuoi consigli nei miei post futuri su codegolf, quindi apprezzo molto l'input.
Ben Hili,

1

JavaScript (ES6), 66 64 byte

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

Crea ricorsivamente la prima riga, quindi aggiunge la seconda. La prima riga è costruita con l'osservazione che è semplicemente l'intervallo [0 ... n] con ogni elemento n trasformato in uno spazio se pari o n concatenato con uno spazio se dispari.


1

Python 2, 60 byte

6 byte salvati grazie a @Kade!

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

Non è necessario utilizzare un list()cast, rimuoverlo ti porta a 60 :)
Kade,

@Kade I backtick `` `` lo rendono una stringa. Non posso farlo lambda s:" "+" ".join(range(s+1)[1::2])+"\n"+-~s/2*"/ \\"eperché poi darebbe un elenco di ints e morirà
Oliver Ni,


@Kade Huh. Non funziona online ... Non importa, non so perché pensassi che non funzionasse ...
Oliver Ni

1

Lotto, 107 byte

@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

Scala, 99 95 byte

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

Ungolfed

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

1

Rubino, 48 byte

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

1

Ottava, 45 byte

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

Test:
f (8)

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

Quando input = 0, c'è un / left :)
Sygmei

Non ho detto che la tua risposta non è corretta! Ho appena notato quel piccolo glitch divertente :)
Sygmei,

Non posso assumere n == 0 :(
rahnema1

1

QBIC , 35 byte

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

Spiegazione:

:           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

Kitanai , 140 byte

$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 ( -plflag) = 48 byte

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

usando:

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

O 52 byte:

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

usando:

perl -e '@_=map$_%2?$_:"",0..pop;print"@_$/","/ \\"x(@_/2),$/' 7
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.