Terinspirasi oleh sorting-a-number-digit-digit-tanpa-menggunakan-an-array , tapi saya pikir itu membuat kode golf yang lebih baik daripada pertanyaan SO.
Diberikan bilangan bulat positif, urutkan digit dalam bilangan bulat itu.
Menang skor terendah!
- Mulai dengan 0 poin.
- Tambahkan satu titik per karakter.
- Tambahkan 20 poin untuk setiap larik yang Anda gunakan.
- Tambahkan 10 poin untuk setiap string multi-karakter dalam kode Anda. (Kecuali input awal selama itu dikonversi ke integer tanpa operasi lain yang dilakukan di dalamnya.)
- Tambahkan 32 poin jika jumlah digit maksimum yang dapat ditangani oleh program Anda dibatasi oleh program Anda (sebagai lawan dari mesin).
- Kurangi 10 poin jika kode Anda dapat mengubah arah pengurutan yang diberikan argumen lain (apa pun yang Anda inginkan, tetapi misalnya 0 untuk pengurutan menurun dan 1 untuk pengurasan.)
Setiap bahasa berbeda, tetapi idenya adalah untuk menghindari segala jenis peretasan yang berulang-ulang.
Contoh:
Input : 52146729
Output : 97654221 atau 12245679
Catatan:
- Gunakan kemampuan penyortiran bawaan yang disediakan oleh bahasa pemrograman Anda, tetapi jika fitur semacam itu melibatkan string atau array, ambil penalti!
- Anda bisa menulis solusi sebagai fungsi yang mengambil integer secara langsung, atau sebagai program yang mengambil argumen dari argv, file atau stream dan mengubahnya menjadi integer. Selama Anda mengonversinya menjadi integer segera dan membuang input char * asli tanpa melakukan operasi lebih lanjut padanya, tidak ada penalti yang berlaku.
- Hukuman tidak hanya berlaku untuk string literal dalam teks program Anda, tetapi bagian mana pun dari fitur program Anda yang dapat menginput atau menghasilkan string atau dapat diubah. Misalnya, JavaScript
String.prototype.split
memiliki setidaknya satu string sebagai input (this
) dan Array sebagai output, jadi +30 untuk menggunakannya. - Saya sudah mencoba membuat aturan ini memandu prinsip desain algoritma, bukan inisial / akhir I / O (karenanya catatan # 2). Saya tidak berpikir hukuman harus diterapkan
int(input())
bahkan jikainput
tanda tangan mengatakan itu mengembalikan string, selama ungkapan itu adalah titik awal masuknya program. Demikian juga, jika hasil akhir dari program adalahprint(x)
danx
harus berupa string, penalti tidak berlaku untuk operasi casting string parit terakhir. Semua yang dikatakan, saya secara eksplisit tidak pernah mengatakan bahwa ini harus menjadi program atau dari mana I / O harus datang atau pergi. Fungsi yang mengambilint
dan mengembalikanint
akan berfungsi, dan tidak akan menderita dari ambiguitas ini.
code-challenge
sorting
kojiro
sumber
sumber
" "
dihitung sebagai string multi karakter? Satu karakter tidak akan dianggap sebagai "multi" ...Jawaban:
GolfScript,
114(4 + 10 (string) - 10 (opsi mundur))
Masukan pada STDIN.
Format input adalah ini:
1
untuk menyortir secara normal,-1
untuk membalikkan. 4 karakter - 10 untuk opsi mundur = skor -6.Input secara teknis adalah string, jadi saya tidak yakin apakah itu diperhitungkan dengan +10. Saya menafsirkan aturan sebagai "string yang dideklarasikan dalam program Anda" (karena dikatakan "dalam kode Anda").
Jawaban lama (skor 11):
sumber
~
segera mengonversi ke integer. Tapi kemudian diubah kembali menjadi string dengan`
. Apakah mengonversikannya menjadi string? Karena terkadang string mungkin bukan multicharacter (input 1 digit)chr
), tidak apa-apa.Haskell 106
contoh:
Jawaban yang tidak menghindari pertanyaan.
Diminta penjelasan, ini dia ungolfed. Ini semacam gelembung yang sangat tidak efisien.
Jawaban yang lebih pendek ada di Haskell, setara dengan beberapa yang lain diposting, misalnya:
... skor 52 + 20 = 72, atau ini, skor 45 + 20 = 65:
... tetapi semangat pertanyaan - tidak ada array, string, atau karakter - lebih menarik.
sumber
Integer.MAX_VALUE
membutuhkanint
. Tambang, dan beberapa yang lain, menerima ukuran input-jenis inputs
yaituInteger
, setara dalamBigDecimal
di Jawa. Tapi bukan itu yang saya maksud dengan pertanyaan itu, saya pikir itu menghukum jawaban yang 'mengurutkan' hanya satu digit angka.Perakitan C + x86, 636
Saya tahu ini tidak akan menang tetapi rasanya sangat tidak wajar dan memutar sehingga saya harus membagikannya. Tidak ada array atau string (selama Anda tidak menghitung argumen input). Jumlah digit dibatasi oleh kisaran 32 bit.
Jadi, inilah sedikit penjelasan tentang apa yang saya lakukan:
Saya pikir saya akan melakukan ini tanpa menggunakan array atau string, dan kemudian rekursi muncul dalam pikiran, tetapi tentu saja, dengan rekursi saya tidak akan dapat menukar nilai dari panggilan rekursif lainnya ... dan saat itulah saya menyadari bahwa ada suatu cara. Menghubungkan program C saya dengan fungsi perakitan Saya bisa melompat di tumpukan dan mengembalikan pointer ke pointer dasar panggilan yang diinginkan, itulah yang fungsi "recursionStackAt" tidak. Tentu saja recursionStackAt adalah fungsi yang sangat jelek, hasilnya tidak hanya bergantung pada input atau keadaan program tetapi pada pemanggil itu sendiri. Perhatikan bahwa itulah yang membuat saya mengubah indeks dari 0 berbasis menjadi 1 berbasis.
Tanpa basa-basi lagi, inilah kodenya:
Dan tentu saja kode perakitan x86 (AT&T sintax, btw) untuk fungsi recursionStackAt:
Beberapa contoh pada output: (1 berarti meningkat dan 0 menurun)
Inilah versi yang dikaburkan (yang tidak dapat dibaca tetapi berfungsi dengan baik):
http://pastebin.com/XkYt9DLy (kode C) http://pastebin.com/h0S0dfeU (kode x86)
Jadi, jika LibreOffice tidak berbohong, kode saya yang kabur terdiri dari 646 karakter (tanpa spasi, haruskah saya menghitungnya?) Dan dengan semua persyaratan lain bertemu, saya mendapatkan -10 untuk pilihan yang bertambah / berkurang.
Oh, dan untuk mengkompilasi ini Anda harus melakukan (Pada sistem Unix-like)
Perhatikan bahwa flag -m32 hanya jika Anda menggunakan mesin 64 bit. Anda juga membutuhkan pustaka 32 bit untuk mengkompilasinya.
sumber
Bash (echo) (0 + 7 + 0 + 0 + 32-10) = 29
Agak:
Pemakaian:
Gunakan "-e" untuk mengurutkan secara terbalik:
EDIT: ubah "cat" menjadi "echo" jadi itu benar-benar berfungsi. EDIT 2: Menambahkan "$ *" dan memasukkannya ke dalam skrip "sorta"
sumber
-e
dapat digunakan sebagai argumen untuk output terbalik.Python3
Fitur skrip saya:
Tidak ada array
Tanpa dawai
Kompleksitas adalah O (n): Saya menggunakan countingsort (dimodifikasi oleh saya untuk tidak menggunakan array, tetapi bilangan prima untuk menghitung kejadian)
Tidak ada batasan ukuran
Karakter:
260234sumber
P
dapat ditulislambda l:((((29-6*l%2,19-2*l%2)[l<9],13-2*l%2)[l<7],2*l-1)[l<5],2)[l==1]
, mencukur beberapa karakter. Saya mungkin telah mengacaukannya sedikit, tetapi idenya adalah untuk menggunakan versi bersarang dari sekolah lama Python ternary (sebelum Python memiliki sebuah ternary)(false_result, true_result)[boolean]
.Bash + coreutils, 14 (24 karakter - 10 untuk mundur)
Saya pikir ini mungkin sedikit menekuk aturan, tapi ini dia, hari Jumat ...
Saya menganggap penggunaan perpustakaan standar diperbolehkan. Interpretasi saya untuk pustaka standar
bash
adalahcoreutils
:Masukan dari stdin. Digunakan:
sumber
bash
ide bilangan bulat juga (menyatakan -i). Diedit.tr
tidak menyukai sintaks Anda, yang akan dikenakan biaya satu karakter pada sistem tersebut.) Bagaimanapun, saya berpendapat bahwa ini masih semua operasi string di hati.declare -i
tidak membuat nama integer, itu hanya membuat shell menggunakan konteks aritmatika di atasnya pada ekspresi tugas RHS.C - 64 karakter, 64 poin
Anda mungkin bertanya-tanya bagaimana saya menjalankan ini tanpa header. Sederhana, kompilasi dengan:
Tidak golf:
Saya juga memutuskan untuk memasukkan pemilahan karakter, hanya karena saya bisa.
Tes berjalan:
sumber
main(int a,char**b){b++;qsort(*b,strlen(*b),1,strcmp);puts(*b);}
mana yang lebih pendek.c(*a
, versi gcc saya bersikeras bahwa kita perlu melakukanc(char*a
sebaliknya.fungsi c (lengkung little-endian),
131108 karakterTidak ada tantangan penyortiran yang lengkap tanpa jawaban sleepsort . Yang ini akan memakan waktu hingga 10 detik untuk kembali, tetapi itu berhasil, dan saya pikir itu sepenuhnya dalam spesifikasi. Fungsi ini mengambil param int tunggal dan mengembalikan int dengan digit desimal diurutkan:
baris baru dan lekukan ditambahkan agar mudah dibaca
Panggil sebagai berikut:
sumber
?:
sebagai gantinyaif-else
.fork()?c++:(sleep(d),exit(d));
(,)
.Jawa: 262 poin
Ya, ya saya tahu, tidak ada harapan, tapi masih ..
Analisis (penandaan):
StringBuffer
(saya menggunakannya karena lebih pendek dariStringBuilder
) (skor = 262 + 10 = 272)Pemakaian:
Ketika Anda mencoba dan mengkompilasi
G.java
file di command prompt, itu menghasilkan banyak sekali masalah (kesalahan). Jadi solusinya?Kemudian, kelas ini harus dipanggil dengan
main()
metode dari kelas lain (atau bahkan kelas itu sendiri). Saya menempatkan kelas lain, jadi saya tidak menambahkannya ke jumlah karakter saya. Kompilasi kelas lain dengan cara yang sama (tanpa menggunakancmd
). Sekarangmain()
metode di kelas lain harus seperti:Tidak termasuk spasi yang tidak perlu, komentar dan jeda baris, ini adalah 93 karakter lainnya. Saya tidak menambahkannya ke karakter saya karena ini hanya untuk demonstrasi melalui konsol.
Keluaran:
NOL yaitu
0
dipertimbangkan. Misalkan kelas eksternalHelper.java
, dan telah berhasil dikompilasi, beberapa contoh melalui konsol adalah:Saat diubah ke
0
yaitu menurun ...CATATAN:
G.java
. Itu adalah kelas inti .Integer.MAX_VALUE
karena itu adalah ukuran maksimum yang bisa dimiliki oleh array apa pun (dalam Java).sumber
TeX / LaTeX (332)
Jika kode aktual dimasukkan ke dalam sebuah paket
s
, maka file LaTeX utama terlihat bagus dan mudah. Angka tersebut hanya diberikan sebagai matematika. Jika angkanya negatif, urutan pengurutan terbalik. Kode pakets
juga dapat digunakan dengan TeX biasa, contoh lebih lanjut di bawah ini.Paket
s
(satu baris, ujung baris tidak diperlukan):Hasil:
Skor: tanpa harapan
Menggunakan TeX biasa dengan
etex
ataupdftex
, file dapat dikurangi menjadi:<contents of s.sty>\rm\shipout\hbox{$<number>$}\bye
Bytes: 318 bytes (
s.sty
) + 24 bytes untuk sisanya tanpa nomorArray tidak digunakan: 0
Saya tidak melihat string multi-karakter: 0
Jumlahnya tidak dibatasi oleh algoritma. Nomor TeX terbesar adalah 2 31 - 1 = 2147483647. Contoh ini menggunakan angka 66 digit, jauh lebih besar: 0
Jika minus diberikan, maka urutan penyortiran dikembalikan menjadi menurun: −10
0 + 318 + 24 + 0 + 0 - 10 = 332
Algoritma:
Digit dibuat karakter aktif dalam mode matematika. Setiap digit mengingat dan mengumpulkan setiap penggunaan dalam makro. Setelah mode matematika makro dihasilkan dengan angka dalam urutan menaik.
Perubahan arah dilakukan oleh teks kanan-ke-kiri, fitur e-TeX.
Versi degolfed kode di
s.sty
Mereproduksi
Ada beberapa kompiler LaTeX online, daftar dapat ditemukan di sini . Saya mencoba item pertama dalam daftar, LaTeX servlet di sciencesoft.at . Itu dapat digunakan tanpa menandatangani dan juga dapat membuat URL permanen: sumber dan hasil sebagai gambar .
sumber
C - 65
Pengamat yang cerdik akan mencatat bahwa algoritma pengurutan ini berjalan dalam waktu O (n) pada jumlah digit di
n
.Pengamat pragmatis akan mencatat bahwa algoritma pengurutan ini berjalan dalam waktu yang sebanding dengan kisaran bilangan bulat yang ditandatangani pada platform, bahwa itu mem mutasi negara global yang harus diinisialisasi ulang antara berjalan, dan bahwa banyak pengorbanan lainnya telah dilakukan demi brevity.
Versi ungolfed tidak persis sama, tetapi lebih baik menyampaikan algoritma yang sebenarnya terlibat.
Berikut ini adalah test harness untuk fungsinya:
sumber
Haskell - 96
96 karakter, tanpa array, tanpa string, tanpa batas integer, tidak dapat dibalik
Contoh:
Yang ini adalah jenis penyisipan, dilakukan langsung pada bilangan bulat itu sendiri. Ini mirip dengan entri Haskell lainnya yang merupakan semacam gelembung, meskipun saya bersumpah saya sedang mengerjakannya sebelum saya melihat yang itu.
Panduan singkat:
d
membagi angka menjadi satuan dan puluhan, yaitu:d 135
adalah pasangan(13,5)
a%x
diurutkan penyisipan digita
ke dalam angkax
a&x
mengurutkanx
dengan memasukkan digit unit ke dalama
dan mengulangi hasil dan sisanyas x
mengurutkan x dengan memulai&
rekursi pada 0 danx
Kuncinya adalah bahwa argumen kedua
%
dan&
tidakx
secara langsung, tetapix
divMod menggunakand
sumber
Python3.3 61 poin
Program ini menerima input sebagai string, yang dianggap sebagai string karena tidak segera diubah ke integer. +10
String diurutkan menjadi array +10
Array ini bergabung bersama menjadi string +10
Catatan: The
''
digunakan untuk bergabung isi array bukanlah string karakter multi-, sehingga 10 tidak ditambahkan ke skor.Program ini terdiri dari 31 karakter. +31
31 + 10 + 10 + 10 = 61 poin
sumber
print(int(''.join(sorted(input()))))
, tetapi pemain untuk integer hanya menambahkan poin dan tidak membuat kode mengikuti aturan lebih dekat. Kurasa aku tidak benar-benar setia pada tantangan. Tapi dia menyatakan bahwa input bisa berupa string, dan outputnya bisa berupa string (untuk pernyataan cetak), dan tidak mengatakan apa-apa di antaranya:]Skor J, 10 karakter (+ 1 string) = 20
Pemakaian:
Bekerja untuk semua angka 32 bit.
Penjelasan:
/:~
mengurutkan&.
dalam":
format. Versi saya sebelumnya menggunakan array juga, tetapi harganya mahal jadi sekarang saya hanya perlu menggunakan string dan mengurutkan karakter berdasarkan abjad.":
mengonversi angka yang dimasukkan ke dalam string dan/:~
mengurutkan digit ke dalam urutan menaik. Karena pengurutan dilakukan dalam format 'di bawah', ketika pengurutan selesai, string diubah kembali menjadi angka. Menambahkan kemampuan untuk membalikkan mungkin akan lebih mahal daripada menghemat, jadi saya tidak repot-repot.Argumen dapat dibuat bahwa karena J, seperti APL dan K, adalah bahasa berbasis array, input tunggal adalah array dari 1 item, tetapi saya memilih untuk tidak mengambil pandangan yang keras saat menghitung skor saya.
Batas 32-bit diberlakukan oleh J, daripada program saya. Setiap yang lebih tinggi dan J mengalihkan angka ke notasi ilmiah. Tidak jelas dari pertanyaan apakah hukuman 32 poin berlaku dalam kasus ini, tetapi bahkan jika kedua hukuman sebelumnya berlaku (saya pikir mereka tidak seharusnya) skornya naik menjadi 72 dan masih dengan nyaman mengalahkan sebagian besar yang lain jawaban.
sumber
Python 2.7: 174
Ini bekerja dengan membuat kamus memetakan semua 10 digit menjadi 0. Kemudian ia mengulangi panjang angka (
log10(i)
), mengekstraksi setiap digit ((i / (10 ** c)) % 10
), dan menambah penghitung untuk digit itu dalam kamus. Akhirnya ia menciptakan string yang dibuat dengan mengulangi semua 10 digit, dan untuk setiap digit menghasilkan satu instance dari digit sebagai string.Saya bisa mengubah baris terakhir
print"".join(d[n]*str(n)for n in xrange(10))
yang kurang dari 16 karakter, tetapi akan menggunakan string multi-karakter.sumber
i=int(input())
dapat samai=input()
sepertiinput()
secara otomatis evals nomor tersebut.C (hingga C90)
atau C ++,7866 poinFungsi jadi semacam integer disebut
s
.Mencetak:
int
) (+0)Versi lama (78 poin, berfungsi juga dengan C ++ dan lebih banyak versi C modern)
sumber
C # - 179
Tidak bermain golf
Uji
Normal:
Terbalik:
Poin: (Saya harap saya mengerti sistem poin dengan benar - jangan ragu untuk memperbaiki)
C # dengan LINQPAD - 123
Uji
Normal:
Terbalik:
Poin:
sumber
Jawa 1469
Solusi bebas string dan array di Jawa. 1437 karakter + 32 karena hanya membutuhkan waktu hingga Long.MAX_VALUE sebagai input. Dengan menggunakan Double, saya bisa menggunakan lebih dari 300 digit, tetapi itu terlalu membosankan untuk diterapkan. Apa pun yang lebih besar dari itu akan membutuhkan BigInteger dan AFAIK yang menggunakan array secara internal. Jika Anda menggunakan kurang dari 19 digit untuk input, output akan memiliki angka nol di depannya. Input negatif akan memberikan semua nol dan apa pun yang bukan angka akan menyebabkan pengecualian.
Untuk jenis yang saya gunakan paling mudah yang bisa saya pikirkan sehingga sangat tidak efisien. (harus O (n * n))
Saya tahu ini tidak benar-benar dibandingkan dengan solusi dalam bahasa lain tetapi saya merasa ini setidaknya adalah yang terpendek yang bisa saya dapatkan di Jawa. (jika ada yang tahu bagaimana cara mendapatkan ini lebih pendek merasa bebas untuk mengedit / komentar)
sumber
AWK - 101
File 'x':
Lari:
Satu-satunya array yang digunakan adalah ARGV dan ini tidak membantu dalam penyortiran, itu hanya akses ke parameter commandline dan nilai-nilai ini dalam variabel non-array di mana sebenarnya diperlukan untuk perhitungan. Saya pikir ini tidak akan dihitung terhadap solusi ini. Perhitungan berikut ini tidak memperhitungkan ARGV-array:
111 (karakter) - 10 (dapat melakukan terbalik)
sumber
Saya tidak melihat apa-apa tentang fungsi penyortiran dalam pertanyaan, jadi ... (Saya akan menghapus jawaban jika itu membengkokkan atau melanggar aturan, beri tahu saya)
JavaScript
5696JavaScript
69109 (dapat dibalik)Dapat diturunkan sedikit menggunakan fungsi panah EcmaScript 6 :
ES6
5090ES6
63103 (dapat dibalik) (73-10)sumber
prompt
mengembalikan sebuah string (yang tidak segera Anda konversi menjadi integer): +10;split
mengembalikan array: +20;sort
melakukan sortir di tempat (jadi masih array yang sama);join
mengembalikan string baru, +10. Total: 96.SED 67 Chars (skor 67 atau 107)
Ini menggunakan semacam gelembung untuk singkatnya. Skor akan menjadi 107 jika setiap pola ekspresi reguler dan jumlah penggantian sebagai string (yaitu 67 + (10 * 4))
Jumlah digit yang ditangani dibatasi oleh memori (dan mungkin kesabaran)
sumber
Fungsi python lambda (reversibel), 69
n
(input) dan''.join(...)
(+20)sorted(...)
(+20)d
(-10)Fungsi python lambda (tidak dapat dibalik), 67
EDIT: Input harus berupa string. Saya sedang mempertimbangkan hukuman menggunakan string itu secara langsung.
sumber
raw_input([prompt]) -> string
, demikiansorted(raw_input())
juga +10. Jugasorted -> new sorted list
, jadi +20. Lalu,,S.join -> string
jadi +10 lagi. Notasi slice juga menyiratkan string, jadi +10 (apa pun yang mendukung notasi slice bisa jadi +20). Jadi saya menghitung masing-masing 73 dan 108.print
bukanreturn
?lambda
sini.)print
lebih pendek dan tidak memerlukan pembungkus. Saya tidak tahu bahwa Anda akan mengizinkan fungsi lambda. Agak facepalmed ketika saya membaca itu. Apakah ini benar?''.join(sorted(str(n)))
.bisakah Anda memberi tahu saya mengapa ini tidak dianggap sebagai jawaban? Saya agak baruGangguan Umum - 126
Versi ungolfified (gaya dan leksikal, tetapi identik):
Digit dari angka negatif diperlakukan sebagai memiliki nilai negatif, dan digit diurutkan paling tidak signifikan-pertama (yaitu, little-endian). Contoh:
Ada 136 karakter dalam versi golf, termasuk spasi. Ia tidak menggunakan string dan array, dan menangani bilangan bulat presisi arbitrer, termasuk bilangan bulat negatif. Penyortiran ini diparameterisasi pada predikat biner yang mendefinisikan pemesanan total pada bilangan bulat di
[-9, 9]
, termasuk tetapi tidak terbatas pada<
dan>
:Ini memberikan skor 126.
sumber
JavaScript 416/185
Tanpa Array, tanpa String, tanpa batasan panjang sembarang ...
Tetapi mengurutkan atas / bawah akan menggunakan lebih dari 10 karakter ^^ Tapi saya menemukan ide untuk menghitung angka dan mencetaknya menarik - mungkin seseorang dapat menggunakan ide ini dalam GolfScript dan memenangkan hadiah ;-)
Kode yang sama lebih pendek, menggunakan eval: (tapi itu kemungkinan akan dianggap menggunakan string ...)
sumber
C (222)
Poin:
-10 (sortir terbalik jika angka (argv [1]) negatif)
= 222 Poin
Bendera yang dibutuhkan untuk menyingkirkan 1000 peringatan kompiler:
gcc -Wno-implicit-function-declaration -Wno-return-type -Wno-implicit-int -Wno-char-subscripts -o count2 counta2.c
"Lebih baik" dapat dibaca:
Agak tidak terserang:
sumber
"%""i"
bukan"%i"
? Mereka mengkompilasi untuk hal yang sama, jadi Anda hanya membuang dua karakter.Apakah ada alasan saya tidak melihat solusi ini?
Rubi
Saya tidak yakin bagaimana cara mencetak ini. Perpecahan akan menghasilkan array, tetapi di luar itu tidak yakin .. 38 karakter + 2x20 untuk array? Atau haruskah itu mencakup semua array yang mungkin dibuat semacam itu secara internal?
sumber
VBScript - 76 (96?)
66 karakter + 10 untuk penggunaan string
n
(Tidak tahu apakah penggunaan
replace
fungsi danstring
fungsi yang mengembalikan n jumlah karakter x dihitung sebagai string tambahan).Ini menghitung jumlah digit tertentu dengan membandingkan panjang string asli dengan string yang sama dengan digit tertentu yang diganti. Kemudian ia menempelkan jumlah digit itu ke n.
sumber
Python 3 sleepsort (168)
Tanpa daftar atau loop, hanya generator.
mungkin bisa ditingkatkan.
sumber
Raket 97
97 poin (87 +20 untuk dua string, -10 untuk pengurutan, tidak ada array)
Ini menggunakan daftar karakter sehingga Anda harus memberinya fungsi perbandingan karakter seperti
char<?
atauchar>?
. Saya merasa ini juga lulus sebagai ungolfed karena tidak banyak yang harus dilakukan selain menambah spasi dan menambah nama variabel. Versi lama saya mungkin lebih terhormat :)Versi lama tanpa string:
110 poin (120 byte (utf-8) - 10 untuk memungkinkan perubahan urutan sortir. Tidak menggunakan string dan tidak ada array)
Tidak Disatukan:
Saya mengujinya dengan nomor fibonacci 100.000:
Dan hal yang sama dalam urutan yang berlawanan:
sumber