Tulis program atau fungsi yang membutuhkan dua daftar kosong yang sama panjangnya dengan input dan lakukan yang berikut:
- menggunakan elemen daftar pertama untuk mendapatkan pembilang,
- menggunakan elemen dari daftar kedua untuk mendapatkan penyebut,
- menampilkan fraksi yang dihasilkan setelah penyederhanaan
(2/4=>1/2)
, dipisahkan oleh tanda "+", - menampilkan "=" dan hasil penambahan setelah fraksi terakhir.
Contoh:
Memasukkan
[1, 2, 3, 3, 6]
[2, 9, 3, 2, 4]
Keluaran
1/2+2/9+1+3/2+3/2=85/18
Tentang aturan
- elemen daftar akan menjadi bilangan bulat positif,
- elemen dapat dipisahkan oleh spasi, misalnya:
1/2 + 2/9 + 1 + 3/2 + 3/2 = 85/18
ok, - membuntuti baris baru diizinkan,
- daftar dapat diambil dalam format lain selain di atas, misalnya .:
(1 2 3 3 6)
atau{1;2;3;3;6}
, dll., 1
dapat dinyatakan sebagai1/1
,- alih-alih mencetak Anda dapat mengembalikan string yang sesuai,
- Anda tidak perlu menangani input yang salah,
- kode menang paling pendek .
[1, 2] [2, 9] [3, 3] ...
gantinya?Jawaban:
M ,
1211 byteIni adalah tautan diadik. Karena bug, itu tidak berfungsi sebagai program lengkap.
F
juga diperlukan karena bug.Cobalah online!
Bagaimana itu bekerja
sumber
Ruby 2.4,
5453 karakterTerimakasih untuk:
Rational
inisialisasi (-1 karakter)Ruby,
585756 karakterContoh dijalankan:
Cobalah online!
sumber
a=n.zip(d).map{|f|(f*?/).to_r};a*?++"=#{a.sum}"
di Ruby 2.4 menghemat 3 byte.sum
haha. Saya juga baru ingat bahwa.map{|i,j|i.to_r/j}
itu lebih pendek 1 byte.to_f
dan divisi, tetapi tidak berpikir untuk membagiRational
denganFixnum
. Terima kasih lagi, @ ValueInk.Mathematica, 33 byte
memasukkan
sumber
Row@@{#/#2,"+"}
sama denganRow[#/#2,"+"]
?Row
begitu nyaman untuk hal-hal seperti ini :)Python 3 , 104 byte
9 byte berkat Felipe Nardi Batista.
Cobalah online!
sumber
+'='+str(sum(c))
ke,'=',sum(c)
Perl 6 ,
7773 byteCobalah
Cobalah
Diperluas:
sumber
Clojure, 71 byte
Yay untuk fraksi built-in!
sumber
Mathematica, 61 byte
sumber
JavaScript (ES6), 111 byte
Mengambil daftar dalam sintaks currying
(a)(b)
.sumber
Java, 225 byte
N
danD
keduanyaint[]
, dikontekstualisasikan.Saya menggunakan kembali fungsi GCD Kevin Cruijssen .
Lihat dan uji secara online!
sumber
Julia v0.4 +,
6653 byte-13 byte berkat Dennis
Cobalah secara Online!
Sebagai alternatif, jika pecahan dapat ditampilkan menggunakan
//
daripada/
, yang berikut ini berfungsi selama 35 byte :sumber
setlX , 103 byte
Membuat fungsi yang disebut
f
tempat Anda memasukkan dua daftar.ungolfed:
dengan variabel bernama dan anotasi:
setlX tidak menyediakan fitur komentar jadi mari kita berpura-pura bahwa kita dapat berkomentar
%
sumber
Perl 6,
72 byte65 byteRasional asli dan otomatis seharusnya membuat ini mudah, tetapi pengetatan default masih desimal, jadi kita harus
.nude
( nu merator dan de nominator) yang membunuh skor kita dan membuat 1 jelek :(Pembaruan: Menghapus tanda kurung yang tidak dibutuhkan, membunuh lebih banyak ruang dan menggunakan peta yang lebih cerdas. Menghemat karakter dari solusi Brad dengan biaya tidak tidak menjadi sub lambda.
sumber
05AB1E ,
3534 byteCobalah online!
sumber
Jelly , 31 byte
Cobalah online!
sumber
PHP> = 7.1, 190 Bytes
Versi Online
+14 Bytes untuk penggantian
return$x/$t."/".$y/$t;
dengan bukanreturn$y/$t>1?$x/$t."/".$y/$t:$x/$t;
keluarann
n/1
sumber
F #,
244241239 byteCobalah online!
sumber
setlX , 62 byte
ungolfed:
sumber
R, 109 byte
membutuhkan
MASS
perpustakaan (untukfractions
kelasnya). fungsig
mengembalikan output yang diperlukan sebagai string.Cobalah online! (Tautan R-biola)
sumber
MATL , 32 byte
Cobalah online!
Penjelasan
Pertimbangkan
[1, 2, 3, 3, 6]
,[2, 9, 3, 2, 4]
sebagai input.sumber
TI-BASIC, 100 byte
Perhatikan
⁄
di awal, berbeda dari/
. Ini membuat pecahan memegang bentuk mereka. Ini tidak bekerja dengan pecahan negatif.Huh . TI-BASIC mengerikan dengan string. Jika yang harus kita lakukan adalah mencetak fraksi, dan kemudian jumlahnya, kodenya adalah:
TI-BASIC, 12 byte
Itu berarti bahwa 88 byte kode saya dihabiskan hanya memformat jawabannya! Hmph .
sumber
C, 171 byte
Coba Online
sumber
Aksioma, 212 byte
uji
sumber
Casio Basic, 161 Bytes
Penjelasan:
A
A
iterasiB
bertindak sebagai penghitung untuk menampilkan yang benarI
item Daftar 1 dan 2 disimpan diC
danD
C
/ VariabelD
C
/D
+E
dalamE
=
danE
sumber
Haskell (Lambdabot),
949186 byteCobalah online!
Terima kasih @Laikoni untuk
-8
byte!Tidak disatukan
sumber
import Data.Ratio
untuk%
yang tidak di Prelude."?"++
dengan'?':
."/"++d
dan"="++
.tail(f>>=t)++'=':(tail.t.sum)f
tail
dan=<<
menjadit
menghemat lagi: Cobalah secara online!Google Sheets,
8381 byteDisimpan 2 byte berkat Taylor Scott
Lembar akan secara otomatis menambahkan 2 tanda kurung penutup ke akhir rumus.
Dua array adalah input sebagai keseluruhan kolom
A
danB
. Baris kosong di bawah input akan melempar kesalahan.sumber
))