Tugas Anda adalah mengambil satu input integer dan mencetak pola zigzag menggunakan garis miring dan garis miring terbalik.
- Input integer menentukan panjang masing-masing zig dan zag, serta jumlah zig dan zag
- Polanya selalu dimulai dari kanan ke kiri
Uji Kasus
4->
/
/
/
/
\
\
\
\
/
/
/
/
\
\
\
\
2->
/
/
\
\
0->
1->
/
8->
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
Jawaban:
C (gcc) ,
10810210198807672 byteN-n-1
keN+~n
Z
peningkatan ke kondisi loopprintf("%c\n",...)
alih-alihputchar(...)
dan,puts("")
printf("%*s",n,"");
untuk mencetakn
spasi alih-alih menggunakan lingkaranj;for(j=n;j--;)putchar(32);
dan menggabungkan keduaprintf(...);
panggilanprintf("%*c",-~n,...);
bukanprintf("%*s%c",n,"",...);
Cobalah online!
sumber
Z,n,j;f(N){for(Z=0;Z<N;Z++)for(n=N;n--;putchar(Z%2?92:47),puts(""))for(j=Z%2?N+~n:n;j--;)putchar(32);}
102 byte . Menghapus kurung keriting dengan meletakkan segala sesuatu di dalam loop; dan diubahN-n-1
menjadiN+~n
.Z%2?...:...
dan menggantiZ<N;Z++
denganZ++<N;
.i;f(N){for(i=0;i<N*N;i++)printf("%*c\n",i/N%2?i%N+1:N-i%N,i/N%2?92:47);}
. Cobalah online!Arang ,
16109 byteCobalah online! Tautan adalah untuk mengucapkan versi kode.
sumber
InputNumber
rusak dalam mode golf juga?)MATL , 17 byte
Cobalah online!
Penjelasan
sumber
C # (.NET Core) ,
117103101 byteCobalah online!
sumber
a=>{var o="";for(int z=a+1,e=0;e<a*a;)o+=(e++/a%2<1?"/".PadLeft(--z):@"\".PadLeft(z++))+"\n";return o;}
103 byte Anda tidak memerlukan semua tanda kurung itu; Anda dapat menggabungkanint
; dan hanya menambahkan+"\n"
sekali.a=>{for(int z=a+1,e=0;e<a*a;)System.Console.WriteLine(e++/a%2<1?"/".PadLeft(--z):@"\".PadLeft(z++));}
101 byteSOGL V0.12 ,
13129 byteCoba Di Sini!
bisa 8 byte
╝F{±↔}P}
jika 0 test case tidak diperlukanPenjelasan:
sumber
Python 2 ,
696862 byte-1 byte terima kasih kepada Jonathan Frech
Cobalah online!
sumber
Mathematica, 84
90byteSaya tidak tahu mengapa
\
jelas lebih gelap dari/
.sumber
(n=#;Grid@Array[If[Abs[n-(s=Mod[#-1,2n])-.5]==#2-.5,If[s<n,"/","\\"],""]&,{n^2,n}])&
Jq 1.5 ,
9489 bytePenjelasan
Contoh Jalankan
Cobalah online!
sumber
Java 8,
140134116 byte-24 byte berkat @Nevay .
Penjelasan:
Coba di sini.
sumber
c-->f*(b-n-~b)
(-6 byte).n->{String r="";for(int a=0,b,c;a++<n;)for(b=n;b-->0;r+=a%2>0?"/\n":"\\\n")for(c=b-n+b|-a%2;++c<b;r+=" ");return r;}
Javascript ES8,
83797876757471 byte* berkurang 1 byte dengan ES8 berkat Shaggy
Tes di sini
sumber
i
parameter default. Hitungan byte tampaknya tidak aktif juga.Pyth , 20 byte
Cobalah online!
sumber
PowerShell , 81 byte
Cobalah online!
Ugh, ini jelek. Begitu banyak kode yang diulang, ditambah 7 byte yang diperlukan untuk menjelaskan
0
kasus khusus. Saran bermain golf diterima.sumber
Pyth, 17 byte
Cobalah online: Demonstrasi
Penjelasan:
sumber
Python 3:
90 Bytes82 BytesTerima kasih kepada @Jonathan Frech karena menunjukkan bahwa cetakan tidak diperlukan dan zig pertama adalah cara yang salah
sumber
] for
->]for
.print(...)
, fungsi yang mengembalikan string akan valid. Juga, saya pikir zig awal Anda berorientasi dengan cara yang salah (\ daripada /).(abs(...)-1)
->~-abs(...)
.05AB1E ,
1716 byteCobalah online!
Penjelasan
Upaya terbaik saat ini menggunakan kanvas:
sumber
C ++,
9291 byte-1 byte, terima kasih kepada Kevin Cruijssen
Berkat kekuatan sihirnya
printf
sumber
int i=0,j
di for-loopfor(int i=0,j;i<n;++i)
untuk menyimpan byte.Java (OpenJDK 8) ,
13110698969491 byteCobalah online!
sumber
i->{for(int j=0;j<i*i;System.out.printf("%"+(j/i%2<1?i-j%i+1:j%i+2)+"s",j++/i%2<1?"/\n":"\\\n"));}
(98 byte).Dyalog APL ,
39363534 byteCobalah online!
1 byte disimpan berkat Zacharý
sumber
⎕IO
menjadi0
, dan kemudian menghapus¯1+
.(⌽,⊢)⍳⍵
bukannya(⌽⍳⍵),⍳⍵
Perl 5 , 70 + 1 (
-n
) = 71 byteCobalah online!
sumber
Kotlin , 102 byte
Cobalah online!
sumber
Excel VBA,
8483 BytesFungsi jendela langsung VBE anonim yang mengambil input dari jarak
[A1]
dan keluaran ke jendela langsung VBEsumber
Jelly , 15 byte
Cobalah online!
Program lengkap.
sumber
Haskell ,
8685 byteCobalah online!
Disimpan satu byte berkat Laikoni
Ulangi zig ++ a zag, dan ambil
n*n
baris pertama .sumber
cycle$ ...
bukannyacycle( ... )
menyimpan byte.J ,
39 35 33 3225 byteCobalah online!
sumber
Dyalog APL,
4140 byte⎕IO
harus0
.Cobalah online!
sumber
D , 105 byte
Cobalah online!
Diangkat dari jawaban C ++ HatsuPointerKun.
sumber