Diberi nomor sebagai input, cetak jumlah kolektifnya
Apa itu jumlah kolektif?
Pertimbangkan nomor 13214
, input
Melewati setiap digit mulai dari kiri, kita akan dapat memperoleh jumlah kolektifnya.
1
berarti melihat angka pertama, dan menambahkannya ke jumlah, jumlah = 1
3
berarti melihat "3 digit pertama" dan menambahkannya ke jumlah, jumlah = 1 + 132
2
berarti melihat "2 digit pertama" dan menambahkannya ke jumlah, jumlah = 1 + 132 + 13
1
berarti melihat angka pertama, dan menambahkannya ke jumlah, jumlah = 1 + 132 + 13 + 1
4
berarti melihat "4 digit pertama" dan menambahkannya ke jumlah, jumlah = 1 + 132 + 13 + 1 + 1321
Jumlah total = 1468
dan ini adalah output Anda
Kasus khusus:
Jika kita menjumpai a 0
, maka jelas kita menyimpan jumlah yang sama
The number 1301 would have a sum = 1 + 130 + 1 = 132
Jika kita menemukan angka yang lebih besar dari panjang input, kita tambahkan semuanya
The number 251 would have a sum = 25 + 251 + 2 = 278
Kasus uji:
collectiveSum(0) = 0
collectiveSum(2) = 2
collectiveSum(2315) = 23 + 231 + 2 + 2315 = 2571
Jumlah byte terpendek menang. Selamat bermain golf!
sumber
2315
uji tidak ada+ 2
dari1
dan harus menghasilkan2571
.2571
.Jawaban:
05AB1E ,
43 byte-1 terima kasih kepada Kevin Cruijssen (penggunaan
€
menghindari a}
)Cobalah online!
Bagaimana?
sumber
ε£}
bisa€£
untuk menyimpan byte.€
sudah ada di sana cukup lama dalam versi warisan 05AB1E sebelum itu. Itu sudah ada di sana ketika saya memposting jawaban 05AB1E pertama saya pada bulan April 2018. Jadi mungkin saja itu ditambahkan segera setelah Anda memposting jawaban ini, tetapi saya tidak yakin.Python 2 , 43 byte
Cobalah online!
sumber
ValueError
input untuk1301
, atau input apa pun yang memiliki nol sebagai salah satu digitnya.int
Fungsi dapat menerima integer, menggantikan'0'
literal string dengan hanya0
harus mencukur habis satu byte.Python 2, 72 byte
Pengiriman pertama! Terima kasih kepada @DestructibleLemon untuk bantuannya!
sumber
Haskell,
4337 byteCobalah online!
Nomor input diambil sebagai string.
sumber
Ruby , 36 byte
Cobalah online!
sumber
#sum
tidak didefinisikan pada fixnums, jadi saya berasumsi Anda inginn
menjadi string. Namun,String#sum
hitung anot a particularly good checksum
dan abaikan blok yang Anda berikan. Jika yang Anda maksudkann.chars.sum{
,Enumerable#sum
bukan di stdlib ruby, itu adalah ekstensi yang disediakan oleh rel. Silakan uji solusi Anda sebelum mempostingnya.Enumerable#sum
ada di Ruby 2.4 , dan TIO menggunakan 2.4JavaScript,
4240 byteTerima kasih @Shaggy untuk bermain golf 2 byte
Menerima input sebagai string dan mengembalikan integer. Seperti yang saat ini ditulis, kode ini meninggalkan nol di bilangan bulat terkemuka.
sumber
x=>[...x].map(y=>a+=+x.slice(0,y),a=0)|a
R, 57 byte
menyimpan satu lagi berkat @Vlo
was: Disimpan 4 byte berkat saran @Robert Hacken.
Pendekatan string sederhana.
sumber
unlist
denganel
.sum(strtoi(substring(i<-scan(,""),1,el(strsplit(i,"")))))
C (gcc) , 106 byte
Cobalah online!
sumber
Arang , 10 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
sumber
Oktaf , 56 byte
Fungsi anonim yang mengambil string sebagai argumen input dan mengembalikan angka sebagai output.
Cobalah online!
Versi lebih pendek
bekerja di Matlab, karena
char(0)
diperlakukan sebagai ruang.sumber
Jelly ,
75 byte-2 Terima kasih kepada Dennis (head vectorises>. <)
4 jika kita dapat mengambil daftar angka *
Cobalah online!
*
ḣ`ḌS
Bagaimana?
sumber
Perl 6 , 27 byte
Menguji
Diperluas:
sumber
C (gcc) ,
7775 byteHarus dikompilasi dengan
-lm
sakelar atau GCC tidak mengenali fungsi matematika.Cobalah online!
sumber
dc , 55 byte
Tidak ada string atau array! Memang, angka yang diperlukan diperoleh semata-mata melalui manipulasi matematika.
Cobalah online!
sumber
Sekam , 6 byte
Cobalah online!
Penjelasan
sumber
J , 18 byte
Penjelasan
Mengambil string sebagai input
Cobalah online!
sumber
Japt, 5 byte
Mengambil input sebagai string.
Cobalah
Penjelasan
sumber
Stax , 6 byte
Jalankan dan debug secara online
Representasi ascii yang sesuai dari program yang sama adalah ini.
sumber
Sebenarnya 10 byte
Cobalah online!
Penjelasan
sumber
JavaScript, 43 byte
Baik setelah jam 3 pagi, mengapa saya masih bermain golf ?!
Mengambil input sebagai string.
Cobalah online
sumber
Perl 5, 26 byte
Termasuk
+1
untukp
sumber
K4 , 22 byte
Larutan:
Contoh:
Penjelasan:
Masuk ke basis-10, ambil min dari setiap angka dan panjang daftar dari ini. Konversi kembali dan jumlahkan.
sumber
Java 8, 92 byte
Penjelasan:
Cobalah online.
sumber
REXX 118 byte
Coba di sini
Berikan nilai Input pada tab STDIN.
sumber
Python 3 , 66 byte
Cobalah online!
sumber
Jelly , 6 byte
Cobalah online!
Dapatkan
D
igits dari input, lalu dapatkan elemen [setiap digit] pertama dari input (ḣ
ead), lalu eV
al masing-masing penjumlahan untuk menjadikannya angka lagi danS
um.sumber