Tantangan
Hitung jumlah aneh dua bilangan alami (juga dikenal sebagai penambahan bulan):
Diberikan A=... a2 a1 a0
dan B=... b2 b1 b0
dua bilangan asli ditulis dalam basis desimal, jumlah aneh didefinisikan, berdasarkan operasi maksimum , sebagai:
A+B=... max(a2,b2) max(a1,b1) max(a0,b0)
... a2 a1 a0
+ ... b2 b1 b0
----------------------------------------
... max(a2,b2) max(a1,b1) max(a0,b0)
Memasukkan
Dua bilangan alami
Semua yang berikut ini diizinkan:
- String nol-empuk (panjang yang sama)
- String kiri-ruang-empuk
- String ruang-empuk kanan
- Array dua string berlapis
- Array ruang-empuk 2D
Keluaran
Bilangan alami
Contoh
1999+2018-->2999
17210+701-->17711
32+17-->37
308+250-->358
308+25-->328
Aturan
- Input dan output dapat diberikan dalam format yang sesuai (pilih format yang paling sesuai untuk bahasa / solusi Anda).
- Tidak perlu menangani nilai negatif atau input yang tidak valid
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online agar orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
code-golf
math
arithmetic
mdahmoune
sumber
sumber
Jawaban:
Python 2 , 20 byte
Cobalah online!
I / O sebagai daftar angka 0-pre-padded.
sumber
Jelly , 1 byte
Cobalah online!
I / O sebagai daftar angka 0-pre-padded.
sumber
R ,
6865 byteCobalah online!
Input sebagai bilangan bulat, output sebagai daftar digit.
Jika daftar zero-padding digit diizinkan, maka
pmax
cukuplah sudah cukup.sumber
MATL , 2 byte
Format input adalah: array char 2D dari dua baris, masing-masing sesuai dengan satu baris, dengan jumlah yang lebih pendek diisi dengan spasi. Sebagai contoh
yang dalam MATL didefinisikan sebagai
Cobalah online!
Penjelasan
sumber
Python 2 ,
736056 byteCobalah online!
Mengambil input sebagai dua string, dan mengembalikan daftar digit
Alternatif:
Mengambil input sebagai dua bilangan bulat; output yang sama
Python 2 ,
6059 byteCobalah online!
sumber
Java 10,
7857 byteInput sebagai dua array karakter berlapis ruang.
Memodifikasi array input pertama alih-alih mengembalikan yang baru untuk menghemat 21 byte (terima kasih kepada @ OlivierGrégoire ).
Cobalah online.
Penjelasan:
sumber
a->b->{for(int i=a.length;i-->0;)if(a[i]<b[i])a[i]=b[i];}
( 57 byte ). Gunakan kembalia
sebagai output untuk mendapatkan banyak, banyak byte.J ,
1412 byte-2 byte terima kasih kepada Jonah
Cobalah online!
Input dan output sebagai daftar digit
sumber
(>./@,:)&.|.
. Cobalah online!Japt,
987 byteMengambil input sebagai array array digit.
Cobalah
Jika mengambil array nol-empuk sebagai input diizinkan (saat ini akan jatuh di bawah "format yang nyaman" tapi saya menduga itu bukan maksud penantang) maka ini bisa menjadi 3 byte.
Cobalah
sumber
y
saat ini? Saya tidak tahu hal itu. Berikut cara lain , juga 8 byte.'
. Saya tidak tahu apakah itu akan menghemat byte, tapi itu pasti keren.Perl 6 , 37 byte
Cobalah online!
Mengambil input sebagai daftar daftar digit.
sumber
05AB1E ,
9 65 byte-3 Terima kasih kepada Emigna
-1 terima kasih untuk Shaggy
Mengambil input sebagai daftar daftar digit
Cobalah online! atau Coba semua test case
sumber
€R
bisaí
. Juga, saya tidak berpikir Anda perlu€þ
sebagainumber > space
€þ
dan itu tidak berhasil, tapi sekarang berhasil ...J
di akhir?Perl 6 , 15 byte
Cobalah online!
Mengambil input sebagai daftar array karakter yang diisi spasi, meskipun untuk tantangan ini format input yang longgar membuatnya agak membosankan. Atau, inilah program yang mengambil daftar dua bilangan bulat sebagai gantinya:
Perl 6 , 41 byte
Cobalah online!
Jika Anda tidak keberatan dengan ruang kosong dalam jumlah besar, Anda juga dapat menghapus
+
dari depan.Penjelasan:
sumber
Haskell , 40 byte
Input / output sebagai string, coba online!
Penjelasan
Fungsi
p
menggantikan setiap karakter dengan spasi, menggunakanp b++a
danp a++b
dengan demikian panjangnya sama. Dengan cara ini kita dapat menggunakanzipWith
tanpa kehilangan elemen apa pun, menggunakanmax
dengan itu berfungsi karena(spasi) memiliki codepoint lebih rendah daripada salah satu karakter
['0'..'9']
.sumber
JavaScript (ES6),
5149 byteNB: Jawaban ini diposting sebelum format I / O yang longgar diizinkan secara eksplisit. Dengan susunan digit nol-empuk, ini bisa dilakukan di 33 byte , (tetapi jauh lebih menarik, IMHO).
Mengambil input sebagai dua bilangan bulat. Mengembalikan bilangan bulat.
Cobalah online!
Berkomentar
Versi alternatif
Format I / O yang sama.
Cobalah online!
sumber
Tcl , 156 byte
Cobalah online!
Tidak terlalu pegolf, tetapi saya harus mencobanya. Akankah golf nanti!
sumber
Batch, 120 byte
Mengambil input sebagai parameter baris perintah. Versi 188-byte bekerja pada bilangan bulat panjang acak:
Mengambil input pada STDIN.
sumber
Ranting , 125 byte
Ketika saya melihat tantangan ini, saya berpikir: "biarkan saya menggunakan bahasa templat! Tentu sangat cocok"
Saya salah ... sangat salah .... ... Tapi menyenangkan!
Ini mengharuskan "strict_variables" disetel ke
false
(nilai default).Untuk menggunakan makro ini, Anda bisa melakukan ini:
Harus menampilkan 167.
Anda dapat mencoba ini di https://twigfiddle.com/rg0biy
("strict_variables" dimatikan, aktif secara default di situs web)
sumber
Sekam , 5 byte
Dengan mudah mengambil input / output sebagai daftar digit, coba online atau verifikasi semua!
Penjelasan
sumber
Stax , 5 byte
Jalankan dan debug itu
Program ini mengambil input sebagai array string.
Jalankan yang ini
Ini adalah pertama kalinya saya melihat penggunaan untuk instruksi overlay "di alam liar".
sumber
SNOBOL4 (CSNOBOL4) , 153 byte
Cobalah online!
sumber
Pyth, 5 byte
Mengambil input sebagai array dari dua string ruang-empuk.
Coba di sini .
sumber
Japt , 4 byte
Input diambil sebagai array dari dua array angka 0-empuk.
Cobalah online!
sumber
Ceylon, 55/99
Dengan 0 atau string ruang-padded dengan panjang yang sama (mengembalikan karakter yang dapat diubah):
Dengan string 0 atau spasi-empuk (mengembalikan String):
Dengan string dengan panjang yang mungkin berbeda (mengembalikan String):
sumber
C # (.NET Core) , 57 byte
-1 byte dengan menambahkan kari
Cobalah secara Online
sumber
Ruby , 25 byte
Cobalah online!
Daftar pra-empuk, bla bla. (Meskipun rasanya sedikit seperti selingkuh.)
sumber
Retina 0.8.2 , 39 byte
Cobalah online! Tautan termasuk test suite. Versi Retina 1 45-byte sebelumnya menerima string yang tidak ditambahkan:
Cobalah online! Tautan termasuk test suite. Penjelasan:
Pad kedua nilai dengan panjang yang sama. (Hanya Retina 1. Ada cara untuk meniru ini di Retina 0.8.2 tetapi mereka tidak terlalu golf.)
Transposis nilainya.
Urutkan setiap pasangan ke dalam urutan.
Hapus semua digit rendah dan surplus baris baru.
sumber
Arang , 8 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Versi 10-byte "menambahkan" sejumlah string berlapis:
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Versi 14 byte sebelumnya menerima string yang tidak ditambahkan:
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Versi 17-byte "menambahkan" sejumlah string:
Cobalah online! Tautan adalah untuk mengucapkan versi kode.
sumber
Mathematica 50 byte
a = 543; b = 791;
(* 793 *)
sumber