Dalam penggandaan yang panjang , setelah mengalikan angka, Anda dibiarkan dengan produk parsial, dalam tantangan ini Anda akan menampilkan produk parsial tersebut.
Karena multiplikasi yang panjang itu panjang, untuk mengkompensasi kode Anda harus sesingkat mungkin.
Contohnya
34, 53
102, 1700
48, 38
384, 1440
361, 674
1444, 25270, 216600
0, 0
0
1, 8
8
Spesifikasi
- Input / Output mungkin dalam format apa pun yang wajar seperti array, string yang dipisahkan koma (atau pembatas lainnya yang bukan digit), daftar, argumen fungsi, dll.
- Produk parsial harus dalam urutan yang meningkat.
- Jika sebagian produk adalah
0
, Anda dapat memilih apakah Anda ingin output atau tidak.
Ini adalah kode-golf sehingga kode terpendek dalam byte menang!
code-golf
arithmetic
Downgoat
sumber
sumber
12, 102
? Sebagian besar jawaban sepertinya kembali24, 0, 1200
.24, 0, 1200
baik-baik saja. Saya akan tentukan dalam postingJawaban:
Jelly, 10 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Pyth, 12 byte
Suite uji
Membagi input baris baru, mis
Penjelasan:
sumber
JavaScript (ES7), 48 byte
ES6 (56 byte)
Penjelasan
Mengembalikan array produk parsial sebagai angka.
Uji
Tes menggunakan
Math.pow
alih-alih**
membuatnya berfungsi di browser standar.Tampilkan cuplikan kode
sumber
Lua,
7268 Bytessumber
APL, 21 byte
Ini adalah fungsi diad yang menerima bilangan bulat di kiri dan kanan dan mengembalikan array. Untuk menyebutnya, tetapkan ke variabel.
Penjelasan:
sumber
⍎¨⍕
cukup pintar.05AB1E , 15 byte
Kode:
Penjelasan:
sumber
Pyth, 26 byte
Ini mendefinisikan fungsi
c
sedemikian rupa sehingga menerima2
argumen, dan fungsi tersebut mencetak sebagian produk.sumber
MATL , 18 byte
The compiler (5.1.0) bekerja di Matlab dan Oktaf.
Setiap angka dimasukkan pada saluran yang terpisah.
Contoh
Penjelasan
sumber
Haskell,
605754 byte5 byte lebih sedikit (drop the
.show
) jika saya bisa mengambil angka kedua sebagai string.Contoh penggunaan:
g 361 674
->[1444,25270,216600]
.Lipat gandakan setiap digit kebalikan
y
denganx
dan skala dengan10^i
manai = 0,1,2,...
.Sunting: Terima kasih kepada @Mauris selama 3 byte!
sumber
(\b->(x*10^b*).read.pure)
.Julia,
5049 byteIni adalah fungsi yang menerima dua integer dan mengembalikan array integer.
The
digits
mengembalikan fungsi array digit input bilangan bulat dalam urutan terbalik. Kami mendapatkan indeks, pasangan nilai menggunakanenumerate
dan menghitung produk parsial sebagai input pertama kali digit kali 10 dinaikkan menjadi kekuatan indeks digit - 1.Menyimpan satu byte berkat Dennis!
sumber
Python 2, 61
sumber
CJam,
1917 byteMengambil input dengan item pertama berupa integer dan yang kedua adalah string (mis
34 "53"
.). Saran diterima, karena saya yakin itu bisa lebih pendek. Terima kasih kepada Dennis karena telah menghemat dua byte.Cobalah online.
Penjelasan
sumber
~~A@#**
menghemat beberapa byte.Haskell, 37 byte
Tidak ada pengerasan, hanya aritmatika. Secara rekursif mendahului produk parsial terkecil ke yang lain, di mana digit terakhir
b
dipotong dan pengganda 10 diterapkan. Prioritas operator bekerja dengan baik.sumber
𝔼𝕊𝕄𝕚𝕟, 11 karakter / 23 byte (tidak kompetitif)
Try it here (Firefox only).
Menemukan bug saat mengode solusi untuk masalah ini ...
Penjelasan
sumber
Japt , 28 byte
Penjelasan:
sumber
ApY+1 /10
alih-alihApY
, karenaAp0
(yang 10 ^ 0) memberikan 100. Saya kira itu karena alasan untuk memungkinkan kuadrat cepatAp
, tetapi0
tidak berarti "tidak ada argumen". Tolong perbaiki, Eth.Python 2, 42 byte
Tidak ada pengerasan, hanya aritmatika. Secara rekursif menambahkan produk parsial terkecil ke sisanya, di mana digit terakhir
b
dipotong dan pengganda 10 diterapkan.sumber