Üstünde tek bir sayı bulunan küçük dağlardan oluşan bir zincir göster!


19

İlk satır, ceil(n/2)her öğenin olduğu öğelerle yapılır :<space><odd-number><space>

İkinci satır ceil(n/2)elemanlarla yapılır , ancak her eleman / \sadece.

Sen varsayabiliriz n >= 0ve n <= 10.

Örnekler

Giriş: 3

 1  3
/ \/ \

Giriş: 10

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

Python 3, 103 bayt örneği:

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

Bayt cinsinden en kısa kod kazanır :)


3
Tüm girdilerin 11'den az olacağını varsayabilir misiniz?
Mavi

Evet, tüm girdiler 11'den az olacak!
Sygmei

8
Siteye Hoşgeldiniz! Code-golf için varsayılanımız karakter değil, bayt olarak saymaktır. Bunu geçersiz kılmak istiyorsanız, seçim sizin. Ayrıca, bir dahaki sefere Sandbox öneriyoruz :)
Outgolfer Erik

Bayt haklısın demek istedim! Etrafta iyi bir bayt sayacı var mı?
Sygmei

1
Boşluğu nasıl ele almalıyız? Her öğenin olduğunu söylüyorsunuz <space><odd-number><space>, ancak test senaryolarında son tek sayıdan sonra boşluk yok. İsteğe bağlı mı? Ayrıca, çıktı n=0iki boş satır için mi?
xnor

Yanıtlar:


12

05AB1E , 19 15 14 12 bayt

05AB1E, CP-1252 kodlaması kullanır . Adnan
sayesinde 4 bayt kurtardı . Carusocomputing
sayesinde 2 bayt tasarruf

ÅÉðìDg…/ \×»

Çevrimiçi deneyin!

açıklama

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

NE KADAR ÏVAR ?! Bu çok kullanışlı görünüyor.
Sihirli Ahtapot Urn

2
@carusocomputing Uzun bir süre: p
Adnan

2
LDÉÏile aynıdır ÅÉve „ ýðìdeğiştirilebilir ðì)»:).
Adnan

2
Sen kaldırabilirsin, )değil mi?
Sihirli Ahtapot Urn

3
ÅÉðìDg…/ \×»başka bir bayt kaydetme Dgyerine kullanır ¹;î.
Sihirli Ahtapot Urn

11

Pyke, 16 bayt

S2%idm+dJil*"/ \

Burada deneyin!

17 bayt ve daha fazlası

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

Burada deneyin!

Bu, ilk satırın doğru hizalandığından emin olmak için IMHO'yu AWESOME algoritması kullanır.

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

Bu, dizgi listesindeki tüm karakterleri boşluklarla değiştirir. ~BBrain **** dilindeki tüm karakterleri içerir ve bu değişkeni ilk kez kullandım.

Program `~Bd.:bunu yapar:

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

... bu ... sadece harika? 05AB1E'yi ve herkesi yendiğinizi biliyorsunuz, değil mi?
Outgolfer Erik

Jelly'i denedim; elbette çok daha uzun olacak.
Outgolfer Erik

"Bir sayı dizisini eşit aralıklarla yerleştirmek için BF karakter setini kullandım"
Söylemeyeceğini

Bu gerçekten zeki :) Aferin
Sygmei

@ErikGolfer AB リ ッ ク ゴ ル フ ァ ー 05AB1E'yi artık dövmüyor.
boboquack

6

Python 2, 63 bayt

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

İlk satır için küçük hile: çift sayıları yazdırmaz, ancak boş bir dize olarak alır, bu da boş alan başlatılmasına (0 orada olurdu) ve aralıkta herhangi bir değişiklik yapılmadan sayılar arasında çift boşluk bırakmasına neden olur, olumsuz çift sayılı n


6

Python 2 3, 67 65 63 60 Bayt

Burada çok çılgın bir şey yok, sanırım ilk bölüm muhtemelen daha kısa yapılabilir ama nasıl olacağından emin değilim . Bu durumda -~n/2işe yarayacağı gerçeğini kullanıyorum ceil.

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

Python 2'de alternatif 61 ve 65 baytlık çözümler aşağıdadır:

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 bayt kaydettiği için Rod ve sürümü değiştirerek başka bir bayt kaydettiği için Artyer'e teşekkürler :)


Eğer Python 3'e taşırsanız, yerine %(tuple(...))ile %[*...], ancak bunu olurdu-~n//2
Artyer

@Artyer Bunu denedi, ancak bir sürü hata atıyor. Ben düşünüyorum ben döküm gerekir range3 en yüzünden bir listeye rangePython 2 yıllardan gibidir xrange.
Kade

Ayrıca çevreleyen parantezleri de bırakabilirsiniztuple()
Rod

Sen yapabilirsin (*<iterable>,)sen açtıktan sonra gerçi bu 1 bayt kaydeder Python 3'te tuplea döküm için n/2içine n//2Python 3.
Artyer

@ Rod ve Artyer çok teşekkürler! :)
Kade

6

JavaScript (ES6), 55 bayt

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>

İkinci satırın sonundaki boşluğa dikkat edin.


Dangit, .replacedaha iyi olabileceğini düşündüm ama kontrol
etmekle

Soru "diyor olabilir ... varsaymak"
Solomon Ucko

1
@SolomonUcko HTML, yanıtın bir parçası değildir, yalnızca çalışmasını göstermeye yarar. Bu nedenle, sonuç 1 ile 10 arasında sınırlanabilir, çünkü sonuç başka şekilde geçerli olmaz.
Neil

Anlıyorum. Aksi takdirde doğru aralığı belirlemeniz gerekir
Solomon Ucko

5

Python 2, 53 bayt

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

n <= 10Sabit kodlu bir dizeden bir parça keserek üst çizgiyi oluşturma kısıtlamasından yararlanır.

1 ile 10 arasındaki çıkışlar

 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 için çıktı iki boş satırdır.


5

Vim, 73 59 56 bayt

Bu, basit bir sorun gibi görünen şey için gerçekten yüksek bir bayt sayısı IMO'sudur. Bariz bir şeyi kaçırmış gibi hissediyorum.

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

Çevrimiçi deneyin!

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>

Güzel, ben her zaman vim upvote! Ancak, yazdırılamayan karakterler de bayt olarak sayılır, bu nedenle bu çözüm gerçekten 73 bayttır. Bunun için üzgünüm!
DJMcMayhem

Ancak bazı ipuçları var. 1) Yedek komutunuzda farklı bir ayırıcı kullanırsanız, eğik çizgiden kaçmanız gerekmez, böylece yapabilirsiniz :s;.;/ \\;g. 2) ikinci yedek komutunuzda, aramayı boş bırakabilirsiniz ve son aramanızı kullanır (bu da aynı olur). Ayrıca, &eşdeğer \0ve bir bayt daha kısadır. Yani olsun:s// & /g
DJMcMayhem

Teşekkürler! Daha az bayt için farklı bir yaklaşım kullanıp kullanmadığınızı görmek için sizden V yanıtı görmeyi umuyordum, ama sorun değil! İlk yorum, sanırım, Çevrimiçi Dene bağlantısını güncellemeyi unuttuğum bir işlev. İkincisi bana 3 bayt verdi, bu yüzden teşekkür ederim!
nmjcman101

4

Mathematica, 65 bayt

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

Anonim işlev. Bir sayıyı girdi olarak alır ve bir dizeyi çıktı olarak döndürür. Unicode karakterleri sırasıyla U + 2308 SOL TAVAN \[LeftCeiling]ve U + 2309 SAĞ TAVAN'dır \[RightCeiling].


4

WinDbg, 100 bayt

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

Giriş, sahte kayıttaki bir değer ayarlanarak yapılır $t0.

Görünüşe göre, dizeyi ilk önce oluşturmaya ve her şeyi görüntülemeye çalışmak yerine inşa edildikçe yazdırmak en kısa gibi görünüyor. WinDbg adresime yazmama izin verirse daha kısa bir çözüm bulurdum 0.

Nasıl çalışır:

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

Her bir değer için çıktı 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

> <> (BALIK), 69 60 68 55 bayt

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

Bu çevirmene yapıştırın!

İlk satırdaki 5 sayısı giriş değerinizdir (5 olarak sabit kodlanmış, kullanıcı girişi için 0-a veya i ile değiştirilmiştir).

Düzenleme 1: Yeni bir satırdaki alandan toplam 9 bayt tasarruf etmek için yeni satır yerleşimini ilk satır alanına taşıdı (boştu).

Düzenleme 2: user7150406 tarafından belirtildiği gibi çıktı yanlıştı (boşluk yazdırma yok) bu 8 baytlık bir kayıpla giderildi.

Düzenleme 3: mantığı tamamen değiştirdi, sayının garip olup olmadığını kontrol etmek için bir nokta yok - bunun yerine tüm sayıları yığına koyun ve her saniyeyi kaldırın. Bayt 13 kurtardı!


4

Java, 118121 Bayt

Düzenleme: @peech sayesinde 6 bayt kaydedildi

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 yapmak:

    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, beni dövüyordun :) Ben de bir Java cevabı göndermek istedim. nasıl olsa, biraz daha golf için bazı öneriler: iilk döngü için başlatmanız gerekmez , bu gibi görünebilir for(; i < n; i++). Bu değişiklikle daha da golf oynayabilirsiniz: döngüde ve döngü için o += i + " ";değişiklikler o += i++ + " ";olur for(; i < n; ). İf ifadesini saklamak istiyorsanız. İ değerinizi değiştirebilir i += 2 ve tüm if ifadesini silebilirsiniz, ancak bu durumda ikinci teklifim geçerli değildir :) (ps: bunu test
etmedim

@peech Herhangi bir teselli ise, normalde ilk C # cevabını almak benim için bir yarış. Bu gitti ise, bir Java cevabı ile yolumu karıştırıyorum :) İpuçları için teşekkürler. iBaşlatma işlemini fordöngüden kaldırdım , ancak diğer şeyler bir döngüde sıkıştı. Onunla biraz daha oynamam gerekebilir :)
Pete Arden

Huh, önceki yorumumda "bunu test etmedim" dedim ki sevindim ... tabii ki işe yaramaz o += i++ + " ";:). Btw, kodunuzda küçük bir hata var :) Java kullandığından floor()tamsayı bölme (4/3 = 1) üzerine, böyle yapmalı: int i = 1; n += 1; for (; i < n; i += 2) { ... jada jada ... }. Eğer i değerini arttırırsanız i += 2, eğer parite için deyim denetimi yaparsanız buna ihtiyacınız yoktur. Ayrıca 3 bayt daha kaydeder :) burada deneyin: ideone.com/ekaUUH
peech

@peech Birisi kodumu düzeltmek için yeterince eminseniz, doğru olması gerektiğini düşünüyorum, bu yüzden işe yaramazsa, tekrar tekrar denemek, "benim olmalıyım ..." :) düşünerek endişelenmeyin! İpuçları için teşekkürler - floorBirkaç gün önce bazı Java ile oynarken kendimi bölümü tuhaf keşfetti :)
Pete Arden

3

C # 6, 95 bayt

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

Tam lambda:

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 bayt

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

Dene!

8478'e -3 teşekkürler (Martin Ender)


Bazı yığın manipülasyonlarından kaçınarak 3 bayt tasarruf edebilirsiniz:Sri,:)2%_S2**N@,"/ \\"*
Martin Ender

@MartinEnder Oh, bu yüzden bunu kaldıramadım +. Ve yemin ederim, gerçekten kullandım ed! ... Pyth'ten daha kısa.
Outgolfer Erik

3

Game Maker Dili (GM 8.0), 97 bayt

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

Girdilerin sayısı aynı olmasına rağmen , girdinin en fazla 10 olduğu göz önüne alındığında, chr(48+i)yerine çalışacaktır string(i).

Okunabilir:

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


3

> <> (Balık) 52 63 62 bayt

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

Çevrimiçi deneyin!

Kullanmak niçin yığının üzerine koyun ve uzağa gidin!

Bunun büyük kısmı @ Teal-Pelican'ın cevabından alınmıştır :).

Düzenleme: Çıktı aslında> <> gönderimi doğru şekilde hizalanmamış! Tespit ...

Edit2: Bazı baytları feda etmek zorunda kaldım, ancak çıktı aslında doğru.

Edit3: Aynalarla artık eğlenceli değil \ /ve 1 bayt tasarruf ediyorum.

Çıktı:

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

Baskıdaki hatayı tespit ettiğiniz için teşekkürler, cevabımı şimdi düzenliyorum (benim için oldukça önemsiz), temel cevabı aynı ama çok sayıda bayt tasarrufunu görmek ilginç.
mavisi Pelikan

Sorun değil, bir teslim görmek mutluydu! Hangisinin daha küçük olduğunu görmek ilginç olacak, çünkü bu değişiklikler benimkine oldukça zarar veriyor haha.
redstarcoder

Görünüşe göre 5 bayt daha küçüküm: s.
redstarcoder

Birkaç dakika bayt sıkıp alamayacağımı görmek için şimdi benimkine bir göz atacağım.
mavisi Pelikan

1
Eve gittim ve yeni bir yol hakkında bir fikrim vardı. Yeni cevabım 55 bayt! : D - Beni bu konuda çalýţtýrdýđýn için teţekkürler, çok eđlenceli.
mavisi Pelikan

2

C, 100 79 77 bayt

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

2

R, 70 69 68 58 bayt

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 bayt

DÜZENLE:

  • eksi 3 bayt (STDIN yerine 1 $ kullanın)
  • -s ""ile değiştirerek bir bayt daha-s\
  • değiştirerek eksi 2 byte printf ile seq -f (teşekkürler @Adam!)
  • işlev yerine komut dosyasına yeniden düzenlendi ( > <> yenmek için )
  • gereksiz boşluklar kaldırıldı
  • sed ifadesini biraz optimize ettim

golfed

Parça (45 bayt):

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

İşlev (orijinal sürüm) (57 bayt):

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

Ölçek

--- 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
sedParlak. Bir işlev veya printf kullanmıyorsanız, 10 bayt tasarruf edersiniz:seq -f" %g " -s "" 1 2 $1|sed 'p;s| . |/ \\|g'
Adam

Güzel bir tavsiye! Teşekkür ederim ! Hala catSTDIN'den girişi okumak için kullanıyorum , IMO olarak verileri aktarmak için önceden tanımlanmış bir değişken kullanmak gerçekten adil değil.
zeppelin

1
$1sadece programa iletilen ilk parametredir. Hile olduğunu düşünmüyorum bkz. Meta.codegolf.stackexchange.com/questions/2447/…
Adam

Evet, haklısın. Tekrar teşekkürler !
zeplin


2

Yakut 82 60 Bayt

Ruby ile daha iyi olsaydım hızlı ve kirli Ruby çözümü kesinlikle daha iyi optimize edilebilirdi

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

Kullanım: prog.rb 10
Çıkış:

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

düzenlemek: @Manatwork tarafından sayısız düzenleme ve optimizasyon!


print$><<ve dize enterpolasyonu kullanın " #{x} ". Ama en iyi sayısını azaltmak olacaktır .eachcallback'inde doğrudan 1 çizgisini çıkışı ve bir değişkene 2 satır yukarı inşa ederek: s="";(1..$*[0].to_i).step(2){|x|$><<" #{x} ";s+="/ \\"};puts"",s. Hatta puts"",(1..$*[0].to_i).step(2).map{|x|$><<" #{x} ";"/ \\"}*"".
manatwork

Numeric#step2 parametresini kabul eder, bu nedenle parantez gerektiren uzun aralıklı sözdizimini önleyebilir: (1..$*[0].to_i).step(2)1.step($*[0].to_i,2).
manatwork

@manatwork gerçekten iyi öneriler! Gelecekteki codegolf yayınlarımda tavsiyelerinizi kullanarak kendimi görebiliyorum, bu yüzden girişi gerçekten takdir ediyorum.
Ben Hili

1

JavaScript (ES6), 66 64 bayt

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

İlk satırı özyinelemeli olarak oluşturur, sonra ikincisini ekler. İlk satır, her öğenin n bile bir boşluğa dönüştüğü veya n tek ise bir boşlukla birleştirildiği sadece [0 ... n] aralığı olduğu gözlemiyle oluşturulur .


1

Python 2, 60 bayt

@Kade sayesinde 6 bayt kaydedildi!

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

list()Oyuncular kullanmanıza gerek yok , bunu kaldırmanız sizi 60'a
çıkarıyor

@Kade Backticks `` `` bir dize yap. Bunu yapamam lambda s:" "+" ".join(range(s+1)[1::2])+"\n"+-~s/2*"/ \\"eçünkü o zaman bir ints listesi verecek ve ölecek
Oliver Ni


@Kade Huh. Çevrimiçi çalışmıyor ...
Oliver Ni

1

Toplu, 107 bayt

@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 Bayt

(? :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

Ruby, 48 bayt

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

1

Oktav, 45 bayt

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

Test:
f (8)

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

Girdi = 0 olduğunda, bir / sol var :)
Sygmei

Cevabınızın doğru olmadığını söylemedim! Sadece küçük komik aksaklık fark ettim :)
Sygmei

N == 0 :(
rahnema1

1

QBIC , 35 bayt

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

Açıklama:

:           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 bayt

$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 ( -plbayrak) = 48 bayt

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

Kullanımı:

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

Veya 52 bayt:

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

Kullanımı:

perl -e '@_=map$_%2?$_:"",0..pop;print"@_$/","/ \\"x(@_/2),$/' 7
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.