Keluarkan hasil berikut (yang merupakan hasil dari menghitung 6 * 9 dalam basis dari 2 hingga 36). Pastikan huruf besar, dan perkalian itu sendiri dihasilkan pada setiap baris.
6 * 9 = 110110
6 * 9 = 2000
6 * 9 = 312
6 * 9 = 204
6 * 9 = 130
6 * 9 = 105
6 * 9 = 66
6 * 9 = 60
6 * 9 = 54
6 * 9 = 4A
6 * 9 = 46
6 * 9 = 42
6 * 9 = 3C
6 * 9 = 39
6 * 9 = 36
6 * 9 = 33
6 * 9 = 30
6 * 9 = 2G
6 * 9 = 2E
6 * 9 = 2C
6 * 9 = 2A
6 * 9 = 28
6 * 9 = 26
6 * 9 = 24
6 * 9 = 22
6 * 9 = 20
6 * 9 = 1Q
6 * 9 = 1P
6 * 9 = 1O
6 * 9 = 1N
6 * 9 = 1M
6 * 9 = 1L
6 * 9 = 1K
6 * 9 = 1J
6 * 9 = 1I
Kode terpendek menang.
code-golf
kolmogorov-complexity
Konrad Borowski
sumber
sumber
Calculate 6*9 in different bases
Saya bertanya-tanya mengapa pernyataan itu diucapkan demikian, mengapa6*9
dan tidak hanya54
? Mungkin makna yang dimaksudkan awalnya adalah bahwa6
dan9
harus ditafsirkan tidak selalu sebagai desimal tetapi dalam basis yang berbeda? Itu akan membuat pernyataan itu lebih logis, dan masalahnya lebih menarik (tapi kemudian kita harus mulai dari pangkalan 10 hingga 36)6
dan9
merupakan angka satu digit. Mereka berarti sama di setiap basis di mana angka-angka itu valid.6 * 9 = 110110
tidak masuk akal ...Jawaban:
05AB1E ,
2120 byteCobalah online!
sumber
GolfScript, 39 karakter
Hasilnya bisa dilihat di sini .
sumber
Oktaf, 49
for i=2:36printf("6 * 9 = %s\n",dec2base(54,i))end
sumber
Javascript,
5755 byteBisa dipersingkat menjadi 49 dengan
alert
, tapi saya tidak ingin mengirim siapa pun ke sana ...sumber
(54)
dapat diganti dengan54.
(untuk menulis54..toString
).for(i=1;++i<37;)
juga menyimpan karakter.Ruby (47)
Yah, saya tahu bahwa solusi GolfScript lebih baik, tapi hei, setidaknya ini bukan esoteris ...
sumber
2.step{|t|puts"9 * 6 = "+54.to_s(t).upcase}
menghemat beberapa byte. Ini keluar dengan kesalahan, tapi itu ok: D .Python, 89
sumber
b=2
<linebreak>while b<37:print'6 * 9 =',B(54);b+=1
(dengan asumsi satu karakter untuk * nix linebreak)Python 2.7 (
124114)EDIT: Potong sedikit bulu berkat komentar @ boothby di bawah ini
Saya pikir Python baik-baik saja mengingat tidak memiliki built-in (yang saya tahu) untuk melakukan konversi basis sehingga harus dilakukan dalam kode;
sumber
print'\n'.join(...for x in y)
lebih lama daripadafor x in y:print...
.Perl 6 , 36 byte
sumber
Mathematica 40
Tidak dalam pertikaian (huruf kecil digunakan):
sumber
Julia, 61
untuk b = 2: 36; @printf ("6 * 9 =% s \ n", huruf besar (base (b, 54))); akhir
Cukup tanpa rasa sakit, selain mengingat untuk menggunakan makro @ printf versus printf.
Basis Impor; tidak dibutuhkan ...
sumber
for b=2:36;println("6 * 9 = $(uppercase(base(b,54)))");end
juga baik ...Perl
Harus menggunakan modul Math :: BaseCnv
35 karakter tanpa
use
pernyataan:54 karakter dengan
use
pernyataan:Tidak yakin bagaimana skor Anda, jadi keduanya disertakan.
Struktur peta BLOCK LIST digunakan. Daftar adalah rentang 2 hingga 36, yang diminta. Daging dalam
cnv($NUMBER, $BASE)
fungsi, dan peta adalah lingkaran tersirat.sumber
use
pernyataannya. Yang pertama tidak bekerja di perl saya.J -
7870Haskell - 137
sumber
CoffeeScript 71
Tautan
sumber
C (
166151)Singkirkan beberapa karakter yang tidak perlu dan ubah beberapa deklarasi. Berasumsi bahwa Anda menjalankan program tanpa argumen.
sumber
Clojure, 75
(for[i(range 2 37)](println"6 * 9 ="(.toUpperCase(Integer/toString 54 i))))
sumber
Python 3, 83 byte
sumber
'\n'.join('6 * 9 = '+numpy.base_repr(54,i)for i in range(2,37))
alih-alih*['6 * 9 = '+numpy.base_repr(54,i)for i in range(2,37)],sep='\n'
menyimpan byte.Dart, 75 byte
Dart sedikit verbose ketika datang ke stdlib, tapi hei ... setidaknya Anda bisa membacanya: P
sumber
Scala, 71
sumber
Gangguan Umum: 56 karakter
sumber
Sage, 48:
Malu Sage mencetak dalam huruf kecil ... Aku hanya satu di atas Howard. Atau, saya kira, salah dan terikat dengan David Carraher.
sumber
Keempat, 54
sumber
/// , 133 byte
Cobalah online!
sumber
SpecBAS - 48 byte
SpecBAS sebenarnya cukup kompetitif untuk perubahan :-)
sumber
8 ,
6562 byteIni adalah program yang lengkap. Keluar setelah eksekusi
Penjelasan
sumber