var QUESTION_ID=54123;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 getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/;
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>
CJam,
3331 byteUji di sini.
Penjelasan
sumber
2^64-1
.Java,
110109107 BytesKode saya adalah dalam bentuk fungsi lambda anonim yang mengambil
long
danint
kemudian mengembalikan aString
.Kelas lengkap yang dapat diuji
sumber
(w,s)->
bukannyaString w(long w,int s)
menghemat besar langsung.Matlab,
8680 byteTerima kasih kepada Hoki atas sarannya, yang membuat saya menyelamatkan saya 6 byte.
Contoh:
sumber
de2bi
akan menyelamatkan Anda beberapa karakter lagi ;-)a='|-'
kea='-|'
. Dan gunakanx=de2bi(typecast(W,'uint8'))+1;
de2bi
hanya dengan memindahkan9-
istilah (digunakan untuk pembalikan). Terima kasih lagi!Julia, 145 byte
Ini menciptakan fungsi yang menerima dua bilangan bulat dan mencetak ke stdout.
Penjelasan + tidak dikumpulkan:
Ini cukup panjang dan saya yakin itu bisa dibuat lebih pendek. Sedang mengerjakannya.
sumber
J, 28 byte
Pemakaian:
Penjelasan (kanan ke kiri):
Cobalah online di sini.
sumber
CJam,
302827 byteCobalah online di juru bahasa CJam .
sumber
Python, 77
Untuk masing-masing
s*s
nilai darin
:(i,j)=(n/s,n%s)
(i%8,j%8)
8*(i%8)+(j%8)
w
dengan menggeserw
banyak ruang dengan kanan dan ambil bit terakhir dengan&1
.n%s==0
Sebenarnya, semua itu akhirnya mendapatkan ubin mundur, karena membaca
w
dari ujung. Kami memperbaikinya dengan menggunakan~n
menggantikann
. Saya mencoba pendekatan rekursif sebagai gantinya, tetapi ternyata sedikit lebih lama.Ekspresi
w>>~n/s%8*8+~n%s%8&1
adalah keajaiban operator yang diutamakan.sumber
Python 2, 132 Bytes
Tentu bukan solusi yang paling elegan, dan ini hampir tidak lebih pendek dari C, tetapi ini adalah permulaan .. Input diambil dengan dipisahkan koma.
sumber
C,
160135 byteBeberapa golf lagi dapat dilakukan di sini dan perlu penjelasan, tetapi saya tidak punya waktu saat ini :)
Tidak Disatukan:
sumber
stdlib.h
harus dimasukkan secara eksplisit. Saya tidak dipaksa untuk memasukkannya lebih awal ketika saya menguji pada CentOS (saya percaya itulah yang saya alami). Sekarang di Ubuntu, saya tidak bisa menjalankannya tanpa kompilasi seperti:gcc -include stdlib.h w.c
Pyth,
3130 byteInput harus pada dua baris, W kemudian S .
Coba di sini
Penjelasan
sumber