var QUESTION_ID=84050,OVERRIDE_USER=31343;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
Befunge , 165
227byteTidak sebanyak spasi putih seperti sebelumnya, tetapi masih ada celah. Prinsipnya sama dengan solusi sebelumnya, tetapi tata letaknya berbeda. Kali ini, untuk memeriksa apakah kedua angka 1, saya hanya mengambil produk mereka dan melihat apakah hasilnya lebih besar dari 1.
Solusi lama (227 byte)
Dimungkinkan untuk bermain golf lebih banyak. Lihat saja semua ruang putih itu!
Inilah upaya saya yang buruk pada penjelasan dalam bentuk gambar MSPaint: Kode mengalir ke arah panah.
sumber
V ,
43, 40, 3836 byteSalah satu jawaban V terpanjang yang pernah saya tulis ...
Cobalah online!
Karena ini berisi karakter unicode dan tidak patut dicetak, berikut adalah hexdump yang dapat dibalik:
Tantangan ini adalah tentang memanipulasi teks, sangat sempurna untuk V! Di sisi lain, V buruk dalam kondisi dan matematika, sehingga output yang berbeda untuk (1, 1) benar-benar mengacaukannya ... :(
Penjelasan:
Sekarang kita memiliki garis 'Ketinggian' dengan spasi di antaranya.
Versi yang tidak bersaing (31 byte):
Cobalah online!
Versi ini menggunakan beberapa fitur yang lebih baru maka tantangan ini menjadi lebih pendek 5 byte!
Penjelasan kedua:
yang merupakan "Hapus baris, dan rekatkan itu n kali" diganti dengan
ÀÄ
yang "Ulangi baris ini n kali". (-2 byte)yang merupakan "Ganti pertandingan pertama regex ini; Undo" diganti dengan
Yang hanya "Cari kecocokan dari regex ini" (-1 byte)
Dan yang terakhir,
Ò
hanyalah sinonim sederhana untukVr
, yang keduanya "Ganti setiap karakter pada baris ini dengan 'x'". (-2 byte)sumber
32-bit bit-endian x86 kode mesin,575451 byte3 byte lebih sedikit berkat @ninjalj.
Sangat berat menulis ulang kode dan telah berhasil mencukur 3 byte lagi
Dalam hex
Input: BX = lebar, SI = tinggi, DI menunjuk ke buffer yang menerima hasil sebagai string yang diakhiri NULL dengan garis yang dipisahkan oleh "\ n"
Membongkar:
sumber
Python 2,
757372 byteMengembalikan string, dengan kondisi untuk menangani blok 1,1.
Terima kasih untuk Lynn dan Chepner untuk dua byte
sumber
lambda x,y:('_'*x*2+'___\n'+
dll menghemat satu byte.x*'__'
alih - alih2*x*'_'
.<function <lambda> at 0x......>
. Bagaimana saya bisa menguji ini?f=lambda x:x+1; print(f(9))
CJam, 34
Cobalah online
Penjelasan:
sumber
Ruby,
5956 byteFungsi anonim, mengembalikan string multiline. Cobalah online!
-3 byte berkat meminjam trik dari @ El'endiaStarman
sumber
Java,
318312297294260258 byteDisimpan 15 byte berkat cliffroot !
Ini bekerja dengan argumen baris perintah.
Tidak Digubahdalam bentuk yang dapat dibaca manusia:Ya, masih sulit untuk memahami apa yang sedang terjadi bahkan ketika program tidak ungolfed. Jadi begini penjelasan langkah demi langkah:
Dua argumen baris perintah pertama - yang akan kita gunakan untuk mendapatkan dimensi - dapat digunakan dalam program sebagai
A[0]
danA[1]
(masing-masing).b
adalah jumlah kolom,B
adalah jumlah baris danC
merupakan variabel yang didedikasikan untuk digunakan dalamfor
loop.c
adalah bagian Lego. Kami akan menambahkan baris ke sana dan kemudian mencetaknya di akhir.Jika bagian yang akan dicetak adalah 1x1, maka keduanya
b
(jumlah kolom) danB
(jumlah baris) harus lebih kecil dari 2. Jadi kita cukup mengaturc
untuk satuo
dan kemudian melompat ke pernyataan yangSystem.out.print
merupakan bagian jika itu yang terjadi.Di sini, kami menambahkan
(integerValueOfA[0] * 2) + 3
garis bawah kec
. Ini adalah baris paling atas di atas semua lubang.Ini adalah lingkaran tempat kita membuat potongan satu demi satu. Apa yang terjadi di dalam tidak mungkin dijelaskan tanpa contoh. Katakanlah potongannya 4x4:
.
Di sini, kami menambahkan
(integerValueOfA[0] * 2) + 3
tanda hubung ke bagian. Ini adalah baris di bagian paling bawah, di bawah semua lubang.Sepotong 4x4 yang saya gunakan untuk menjelaskan
for
loop di mana bagian itu sebenarnya dibangun sekarang terlihat seperti ini:Dan akhirnya, kami mencetaknya!
sumber
C
variabel darifor
loopint b=Byte.valueOf(A[0]),B=Byte.valueOf(A[1]),C
. Dalam semua untuk loop Anda, sepertinya Anda dapat menggunakanC-->0;
cek, membuatnya 298, pastebin.com/uj42JueLfor
loop untuk beberapa byte disimpan - pastebin.com/dhNCpi6nif(b==1&B==1)
memungkinkan Anda untuk menyimpan lebih dari 20 byteSystem.out.print('o');return;
, Anda dapat mengaturc='o'
dan menempatkan logika untuk batu bata yang berbeda di blok lain. kemudian memiliki satu pernyataan cetak dan tidak ada pengembalian memungkinkan Anda untuk menyimpan beberapa byte tambahanMinkolang 0,15 ,
585756 byteYa itu betul. Saya bermain golf
satubyte kecil dua bau ...Coba di sini!
Penjelasan
Oke, itu dua penulisan ulang penjelasan yang signifikan untuk dua byte yang disimpan. Saya tidak berpikir saya bisa atau akan golf lebih dari yang ini. : P
sumber
brainfuck, 391 byte
Saya tahu ini bisa bermain golf lebih banyak, tetapi pada titik ini saya senang itu berfungsi. Saya akan terus bekerja untuk menurunkannya.
Input perlu diberikan hanya dua digit. Seperti dalam, untuk melakukan
(8, 2)
Anda hanya akan masuk82
.Cobalah online!
Kerusakan:
Pertama-tama masukkan karakter yang diperlukan ke dalam rekaman:
(newline)| o_-
Kemudian kumpulkan input menjadi dua sel dan kurangi 48 dari masing-masing (untuk mendapatkan nilai numerik dan bukan karakter angka)
Selanjutnya, periksa untuk kasus khusus
(1, 1)
(Perhatikan bahwa hanya cek ini menyumbang 109 byte kode). Seolah-olahif
s tidak cukup sulit untuk dilakukan di brainfuck, kami memiliki sarangif
:Berikut ini adalah struktur untuk memeriksa apakah sel x nol atau tidak nol:
Namun dalam sarang
if
, kita perlu memiliki 4 sel sementara.Sekarang kita sampai pada pencetakan karakter yang sebenarnya:
Cetak bilah atas dan baris baru:
Cetak a
|
, bariso
's, yang lain,|
dan baris baru beberapa kali sama dengan tinggi:Dan cetak bilah bawah (tidak perlu baris baru di sini):
sumber
Retina , 52 byte
Hitungan byte mengasumsikan penyandian ISO 8859-1. Perhatikan bahwa baris keenam seharusnya berisi satu spasi.
Cobalah online!
Input dalam bentuk unary, menggunakan
1
sebagai digit unary, ruang sebagai pemisah dan tinggi diikuti oleh lebar.Penjelasan
Semua tahap dalam program ini adalah substitusi telanjang, kadang-kadang dengan pengubah regex reguler (tidak ada pengulangan atau loop, tidak ada jenis tahap lainnya). Bahkan tidak menggunakan fitur substitusi khusus Retina, selain
¶
alias biasa untuk linefeeds.Tujuannya adalah untuk "melipatgandakan" dua input. Tujuan kami adalah membuat
h+2
baris denganw
1
masing-masing (h+2
sehingga kami dapat mengubah bagian atas dan bawah menjadi_
dan-
kemudian). The\G
anchor membutuhkan pertandingan untuk memulai di mana yang terakhir tinggalkan. Artinya, jika kita pernah gagal mencocokkan karakter dalam string, karakter selanjutnya tidak akan cocok. Kami menggunakan ini untuk mencocokkan hanya1
dalamh
, tetapi tidak dalamw
karena regex tidak memungkinkan ruang yang memisahkan mereka untuk dicocokkan. Namun, kami juga membuat1
opsional, sehingga kami mendapatkan kecocokan kosong tambahan di akhirh
. Ituh+1
cocok. Masing-masing diganti dengan seluruh input ($_
) diikuti oleh linefeed.w
itu sendiri tetap tidak tersentuh yang memberi kitah+2
salinan nd. Katakanlah input tadi11 1111
, maka kita sekarang punya:Cukup bagus. Kami punya beberapa barang ekstra, tetapi
h+2
salinannyaw
ada di sana.Perhatikan bahwa ada spasi di akhir baris pertama. Ini menghapus awalan-awalan itu dari baris sehingga kita hanya memiliki
w
s sesudahnya.Ah, itu tidak benar-benar berfungsi dengan format SE ... baris pertama kosong dan baris kedua seharusnya berisi satu spasi. Ini memasukkan spasi ke dalam setiap posisi yang memungkinkan, yaitu di awal dan akhir setiap baris dan di antara setiap pasangan
1
s:Kami akan mengubahnya menjadi
o
nantiIni hanya membungkus setiap baris dalam sepasang
|
:Sekarang kami menangani bagian atas dan bawah:
Saatnya
\G
bersinar lagi. Ini cocok dengan setiap karakter di baris pertama dan mengubahnya menjadi_
.Hal yang sama, tetapi karena
r
modifikator (mode kanan-ke-kiri), ini cocok dengan karakter pada baris terakhir dan mengubahnya menjadi-
. Jadi sekarang kita punya:Hanya ada dua hal yang harus dilakukan sekarang: ubah
1
menjadio
s, dan jika inputnya1 1
maka ubahlah semuanya menjadio
gantinya. Kami dapat menangani keduanya dengan satu tahap:s
adalah mode singleline biasa (yaitu membuat.
matchfeed garis) Jika inputnya adalah1 1
hasilnya akan memiliki ukuran minimum 17 karakter sehingga kami dapat mencocokkannya^.{17}$
dan menggantinya dengano
. Kalau tidak, jika gagal, kami hanya akan mencocokkan semua1
dan menggantikannya dengano
.sumber
Jolf, 36 byte
Jolf, 24 byte, tidak bersaing
Yah, aku membuat kotak yang lebih baik.
Jolf,
3837 byteHal-hal sederhana, sungguh. Menyimpan byte dengan mencatat bahwa
!Ζ
(matematika zeta, atau penyimpangan stand) hanya 0 ketika kedua argumen adalah 1, dan sebaliknya salah (untuk kasus kami).sumber
05AB1E , 33 byte
Kode:
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online! .
sumber
JavaScript (ES6),
8986 byteSunting: Disimpan 3 byte berkat @Shaggy.
sumber
repeat
.Python 2, 71 byte
sumber
Befunge, 144 Bytes
Saya lebih suka mengomentari posting ini , tetapi saya belum memiliki reputasi, jadi saya memberikan jawaban saya sendiri, yang bekerja dengan cara yang sama, tetapi sedikit lebih kompak
Anda dapat menguji kode di sini
sumber
Reng v.4, 82 byte, tidak bersaing
Saya mendorong perbaikan bug yang memperbaiki fungsi yang ditimpa sendiri (tolong jangan tanya; barang saya dihantui)
Mengambil input sebagai angka yang digabungkan dengan ruang, misalnya
4 2
. Coba di sini!sumber
I pushed a bug fix that fixes functions being overwritten by themselves
... Ya, itu bug yang menarik untuk dimilikiPowerShell v2 +, 76 byte
Mengambil input, lalu memeriksa
if
pernyataan. Sejak nol non nilai-nilai truthy di PowerShell, selama setidaknya satu dari$x
dan$y
tidak sama untuk1
, yangif
akan menjadi kenyataan.Di dalam
if
, ada serangkaian perkalian string. Pertama, kami membuat rangkaian garis bawah, menabung$z
untuk nanti. Itu ditempatkan di saluran pipa. Selanjutnya kita membangun string sisi dan pasak kita (dengan pasak dikalikan dengan$x
), dilakukan$y
kali, dan menggabungkannya dengan$z
kali tanda hubung kita . Tali itu kemudian ditempatkan pada pipa dan kitaexit
. Pipa disiram dan pencetakan tersirat. Perhatikan bahwa kita mendapatkan baris baru antara garis bawah dan baris pertama pasak secara gratis, karena.ToString()
pemisah default untuk output array adalah`n
(dan kami mengeluarkan array string).Jika
if
itu salah, kami berada dalam1 1
kasus khusus , jadi kami tinggal memasang"o"
pipa dan keluar, dengan mencetak lagi implisit.Contohnya
sumber
Bash,
186,163,156,148,131, 130 BytesCatatan: Jika Anda benar-benar membutuhkan lego untuk memiliki tanda hubung untuk baris terakhir, maka ubah printf terakhir ke
dan tambahkan dua byte.
sumber
(($x+$y==2))&&echo o||{ printf _%.0s $(seq -1 $x);echo;for((i=0;i<$y;i++));do printf \|;for((j=0;j<$x;j++));do printf o;done;echo \|;done;printf =%.0s $(seq -1 $x);echo;}
()
, Anda tidak perlu kata kuncifunction
untuk mendeklarasikan suatu fungsi. Ada alternatiffor
sintaks menggunakan kawat gigi, misalnya:for((j=$1;j--;));{ printf o;}
. Seperti yang diperlihatkan dalam contoh sebelumnya, Anda dapat menyimpan beberapa karakter dengan mengurangi dan mengujifor
ekspresi kedua. Anda dapat menggunakan backticks sebagai ganti$(cmd)
.(($x+$y==2))&&echo o||{ printf _%.0s `seq -1 $x`;echo;for((i=$y;i--;)){ printf \|;for((j=$x;j--;)){ printf o;};echo \|;};printf =%.0s `seq -1 $x`;echo;}
(($something))
ke((something))
seluruh. ($1
Masih membutuhkan tanda dolar untuk memisahkannya dari literal1
.)Perl 5 -
8477 byte84 Bytes
77 Bytes. Dengan bantuan dari Dom Hastings
sumber
warn
program golf, tapi kemudian saya menyadari Anda menggunakannya karena lebih pendek dariprint
. Bagus!-E
alih - alih-e
, mengaktifkan semua ekstensi. Saya baru di tempat ini jadi saya tidak tahu persis di mana itu ditentukan bagaimana menghitung skor.warn
), Anda tidak perlu tanda kutip di sekitar"o"
(Anda dapat gunakan bareword untuk -2 lain), jika Anda sebaris perhitungan$w
Anda harus menyimpan byte lain ('_'x($w=3+2*$x)
vs.$w=3+2*$x;
...'_'x$w
) dan terakhir, Anda dapat mengubah\n
untuk baris baru literal. Semoga itu bisa membantu!C,
202191 byteTerima kasih kepada @Lince Assassino karena telah menghemat 11 byte!
Tidak Disatukan:
sumber
p(char*A){printf(A);}
#define p printf
Cinnamon Gum, 32 byte
Non-bersaing. Cobalah online. Input harus tepat dalam bentuk
[width,height]
tanpa spasi di antara koma dan tinggi.Penjelasan
String mendekompres ke ini:
Pertama
l
tahap peta[1,1]
untuko
(kasus khusus) dan segala sesuatu yang lain ke stringBacktick kemudian menandakan dimulainya tahap kedua; alih-alih mengeluarkan string itu, CG memotong backtick dan mengeksekusi string. The
p
modus kemudian mengulangi semua karakter di dalam tildes parameter pertama (lebar) kali dan kemudian setelah itu mengulangi karakter di dalam persen tanda-tanda parameter kedua (tinggi) kali. Jadi untuk[4,2]
itu berubah menjadi ini:dan kemudian ke:
sumber
Batch,
172170 byteSunting: Disimpan 2 byte berkat
@ CᴏɴᴏʀO'Bʀɪᴇɴ@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.Saya dapat menyimpan 7 byte jika saya dapat menganggap ekspansi yang tertunda diaktifkan.
sumber
%%o%%
bukan%o%
?%o%
akan diganti dengan nilai aslio
setiap kali, jadi ituo
hanya akan sama" o"
.%%o%%
digunakan sebagai argumencall
dari%o%
, yang kemudian menggunakan nilai saat ini dario
.do set o=%o% o
?%o%
akan diperluas sebelumfor
loop diuraikan, sehingga loop membacafor /l %i in (1,1,8) do call set o= o
yang jelas tidak ada gunanya.do set o=%%o%% o
(-5)?Vim, 56 penekanan tombol
Ini sepertinya tugas pengeditan teks, jadi Vim adalah pilihan yang jelas! Saya mengambil input sebagai file teks dengan dua integer yang dipisahkan spasi dan mengeluarkan jawaban ke dalam file yang sama. Juga, saya benci Anda karena memiliki kasus khusus 1x1 ... Pokoknya:
dan jika tidak ada kasus khusus, 35 penekanan tombol
Rincian untuk orang waras:
Hapus angka dari buffer ke @a dan @b (spasi disimpan)
Ganti ruang dengan "o" dan jika ada kasus khusus, simpan dan keluar
Kosongkan garis dan tulis tepi blok lego
Masukkan @a banyak "o" untuk mendapatkan bagian tengah yang sudah jadi
Yank line dan buat salinan ekstra @b (satu terlalu banyak)
Kami berada di atas buffer, ganti garis tambahan dengan garis bawah
Lompat ke bawah buffer, tarik garis yang telah kita tarik sebelumnya
Ganti baris dengan tanda hubung, simpan dan keluar
sumber
Pyth, 38 byte
Suite uji.
sumber
Haskell, 76 byte
Contoh penggunaan:
3 # 2
memberi Anda string multiline untuk bata 3-oleh-2.Tidak Disatukan:
sumber
unlines
, tapi ternyata tidak.Groovy,
107,98,70, 64Pengujian:
sumber
Befunge,
114113108101 byteSaya tahu sudah ada sejumlah solusi Befunge, tapi saya cukup yakin mereka bisa diperbaiki dengan mengambil pendekatan yang berbeda dengan tata letak kode. Saya menduga jawaban ini bisa di-pegolf lebih jauh juga, tetapi sudah agak lebih kecil dari salah satu entri sebelumnya.
Cobalah online!
sumber
:<|
dibutuhkan?APL, 46 byte
Penjaga:
⍵≡1 1:'o'
untuk kasus khusus. Kalau tidak,'o '⍴⍨1 2×⌽⍵
buat konten. Dan sisanya hanya tinju.sumber
C #, 198 byte
cepat dan kotor
Saya harus menulis fungsi yang mengalikan string
ungolfed (untuk saran)
sumber
string s(string m,int u){return string.Join("",new int[u].Select(n => m));}
- .ToArray () adalah redundan dan string [] mungkin juga menjadi int []. Tetapi alih-alih string. Bergabunglah dengan Anda dapat menggunakan agregat:string s(string m, int u){return new int[u].Aggregate("",(t,i)=>t+m);}
void f(int x,int y){Func<char,int,string>s=(c,i)=>new string(c,i);int l=x*2+3;Console.Write((y&x)==1?"o":s('_',l)+"\n"+s('y',y).Replace("y","| "+s('x', x)+"|\n").Replace("x","o ")+s('-',l));}
Oktaf,
979586 byteSaya menggunakan metode @atlasologist dengan Python untuk menguji
(1, 1)
:(...,'o')[x<2>y]
Terima kasih kepada @Luis Mendo karena telah menyimpan 7 byte:
a=ones(1,w*2+3)*'_'
kea=~(1:w*2+3)+95
dana./a*'-'
ke~a+45
Terima kasih kepada @pajonk karena telah menghemat 2 byte:
f=
sumber
a./a*'-'
Anda bisa menggunakan~~a*'-'
? Atau bahkan~a+45
?f=
)