Diberikan bilangan bulat positif n sebagai input, output jumlah rentang terbalik n.
Jumlah rentang terbalik dibuat dengan membuat rentang inklusif hingga n, dimulai dengan 1 dan termasuk n, membalikkan masing-masing angka di dalam, dan menjumlahkannya.
Contoh:
Inilah yang akan terjadi untuk input 10:
Jarak: [1,2,3,4,5,6,7,8,9,10]
Terbalik: [1,2,3,4,5,6,7,8,9,01]
(Angka 1-char terbalik adalah diri mereka sendiri, 10 terbalik adalah 01 atau 1)
Jumlah: 46
Angka dengan 3+ digit dibalik dengan cara yang sama dengan 2 digit. Sebagai contoh, 1234 akan menjadi 4321.
Kasus uji:
Input -> Output
10 -> 46
5 -> 15
21 -> 519
58 -> 2350
75 -> 3147
999 -> 454545
Kasing teks lengkap untuk input 999 dapat ditemukan di sini , terima kasih banyak ke @ fireflame241.
code-golf
number
arithmetic
Kamerad SparklePony
sumber
sumber
Jawaban:
05AB1E , 3 byte
Kode
Menggunakan penyandian 05AB1E . Cobalah online!
Penjelasan
sumber
Reverse
seharusnyaReverse each
benar - benar ...R
, sedangkaní
"membalikkan masing-masing".Utilitas Bash + GNU, 24
Cobalah online .
Penjelasan
sumber
JavaScript (ES6), 42 byte
Solusi rekursi ganda favorit saya sayangnya 3 byte lebih lama:
sumber
Perl 6 , 20 byte
Menguji
Diperluas:
sumber
».flip
memanggil.flip
metode pada setiap nilai dalam Range. Cara terpendek berikutnya.map(*.flip)
adalah 5 byte lebih.».flip
adalah pemanggilan metode hiper. Sementara saya dapat memisahkan»
dan.flip
dengan menggunakan ruang kosong\
seperti yang saya lakukan sebelumnya; yang akan membuatnya lebih sulit untuk dipahami, karena akan terlihat seperti akhir dari sebuahqqww/ /
konstruk (« a b "c d" »
).Retina ,
413635 byteCobalah online! Tautan termasuk kasus uji. Sunting: Disimpan 5 byte berkat @FryAmTheEggman. Disimpan 1 byte berkat @ PunPun1000. Penjelasan:
Konversikan ke unary.
Buat rentang dari
1
hinggan
.Konversi kembali ke desimal.
Membalikkan setiap nomor.
Konversi kembali ke unary.
Jumlahkan dan konversikan kembali ke desimal.
sumber
¶
dalam.+¶
Pertandingan akan cocok di seluruh liniO^$s`.
membalik seluruh string juga berfungsi.Jelly , 4 byte
Cobalah online!
Bagaimana?
sumber
Haskell, 34 byte
Sederhana dan mudah.
sumber
C (gcc) , 63 byte
Cobalah online!
sumber
cQuents , 4 byte
Cobalah online!
Penjelasan
sumber
Python 2 , 38 byte
Tidak dapat menghitung istilah yang lebih tinggi dari batas rekursi:
Cobalah online!
sumber
import sys
dansys.setrecursionlimit()
jika Anda ingin menangani angka yang lebih besar, di tio header.Brachylog , 4 byte
Cobalah online!
Penjelasan
sumber
Röda ,
564136 byte15 byte disimpan berkat @fergusq
Cobalah online!
Ini adalah fungsi anonim yang mengambil integer dari aliran input dan output integer ke aliran output.
Penjelasan
sumber
[::-1]
alih-alih mundur. Juga `$_
` lebih pendek dari_..""
dan tanda kurung setelah parseInteger tidak diperlukan.C # (.NET Core) ,
10397 byteCobalah online!
TIO link menampilkan semua hasil dari 1 hingga 999, jadi silakan memeriksa pekerjaan saya.
Saya berharap ini menjadi sedikit lebih pendek, tetapi ternyata
Reverse()
mengembalikanIEnumerable<char>
bukan string lain jadi saya harus menambahkan beberapa untuk mengubahnya kembali menjadi string sehingga saya bisa menguraikannya ke int. Mungkin ada cara yang lebih singkat untuk pergiIEnumerable<char>
ke int dengan benar.Catatan kecil, ini juga menggunakan fungsiRange()
Reverse()
danSum()
semua dalam rangka.-6 byte terima kasih kepada TheLethalCoder
sumber
new int[r]
dan.Select((_,n)=>...)
akan menghemat byte.new int[r+1]
untuk mendapatkan output yang tepat sejak indeks dimulai pada 0, tetapi masih menyimpan beberapa byte. RIPRange()
meskipunRubi,
56, 52, 41,39 byteRuby, 34 byte (jika lambda param adalah string)
Terima kasih kepada @Unihedron untuk solusi kedua.
sumber
->n{
berfungsi juga.?a..?z
dan?a1..?h8
(walaupun Anda sebaiknya berhati-hati dengan format ke-2: D)succ
dan 2. (jika nilai awal atau akhir tidak menerapkansucc
) menjadi numerik, sehinggaint..string
akan ditolak sebagai "Nilai buruk untuk rentang". Kebalikannya benar (tapi sayangnya tidak ada rentang downto), atau(?1..n)
dapat digunakan sebagai gantinyaMathematica, 47 byte
Cobalah online! (untuk mengerjakan matematika kita perlu mengganti "Tr" dengan "Total")
sumber
Tr@*IntegerReverse@*Range
Arang ,
1413 byte-1 byte terima kasih kepada Carlos Alejo
Cobalah online! Tautan adalah untuk versi verbose.
Penjelasan
sumber
»
. Ngomong-ngomong, di mana dalam Charcoal wiki yangReduce
didokumentasikan oleh operator?Modulo
operator dapat digunakan untuk memformat string di Charcoal?Magneson , 102 byte
Itu tidak terlalu terlihat, jadi inilah versi yang ditingkatkan (Catatan: Tidak akan benar-benar berjalan, dan masih tidak terlalu cantik)
Magneson beroperasi dengan mem-parsing gambar dan mengevaluasi perintah dari warna piksel yang dibacanya. Jadi melangkah melalui gambar untuk tantangan ini, kami memiliki:
R: 0, G: 1, B: 1
adalah perintah penugasan integer, yang mengambil string untuk nama variabel dan nilai yang diberikan. Kami akan menggunakan ini untuk menyimpan jumlah total.R: 0, G: 1, B: 0
adalah string prebuilt dengan nilaiVAR_1
(Catatan: Ini hanya sementara kami meminta string; kode warna memiliki fungsi terpisah ketika digunakan di tempat lain).R: 3, G: 0, B: 0
adalah angka mentah. Magneson menangani angka-angka standar dengan meminta komponen Merah tepat 3, dan kemudian membentuk angka dengan menggunakan nilai biru secara langsung ditambah nilai hijau dikalikan dengan 256. Dalam hal ini, kami hanya mendapatkan angka 0.R: 0, G: 1, B: 1
adalah perintah penugasan integer lainnya. Kali ini, kami menyimpan variabel iterasi, untuk melacak nomor yang kami gunakanR: 0, G: 1, B: 1
adalah string prebuilt dengan nilaiVAR_2
(Sekali lagi, hanya ketika kita membutuhkan sebuah string)R: 3, G: 0, B: 0
adalah angka 0, sekali lagi. Ke bit menarik sekarang.R: 1, G: 0, B: 0
menunjukkan awal dari sebuah loop. Ini mengambil nomor dan mengulangi potongan kode berikut yang berkali-kali.R: 2, G: 0, B: 0
adalah fungsi STDIN, atau setidaknya ketika kita membutuhkan nomor. Ini membaca garis input dari konsol dan mengubahnya menjadi angka, karena kami meminta nomor.R: 0, G: 8, B: 0
memulai kode perulangan kami, dan ini merupakan perintah tambahan. Ini menambahkan angka ke variabel integer, dan dengan demikian mengambil string untuk nama variabel, dan nomor untuk ditambahkan.R: 0, G: 1, B: 1
adalah string prebuilt untukVAR_2
, yang merupakan variabel iterasi kami.R: 3, G: 0, B: 1
adalah angka mentah, tetapi kali ini adalah angka 1.R: 0, G: 8, B: 0
adalah perintah tambahan lainnya.R: 0, G: 1, B: 0
adalah string untukVAR_1
, yang merupakan jumlah total kami.R: 0, G: 3, B: 0
adalah fungsi yang membalikkan string. Dalam konteks meminta nomor, itu kemudian mengubah string yang dibalik ke nomor.R: 0, G: 2, B: 1
adalah perintah pengambilan integer, dan akan mengambil nomor yang disimpan dalam variabel yang disediakan. Dalam konteks meminta string (seperti dari perintah kebalikan), itu mengubah angka menjadi string.R: 0, G: 1, B: 1
adalah namanyaVAR_2
; variabel iterasi kami.R: 1, G: 0, B: 1
adalah penanda untuk mengakhiri loop, dan kembali ke awal loop jika kriteria tidak terpenuhi (jadi jika kita perlu terus mengulang) Jika tidak, lanjutkan.R: 0, G: 0, B: 1
adalah perintah println yang sangat sederhana, dan mengambil string.R: 0, G: 2, B: 1
mengambil integer dari variabelR: 0, G: 1, B: 0
adalah nama dari jumlah total variabel kami,VAR_1
Secara keseluruhan, program ini:
VAR_1
danVAR_2
VAR_2
VAR_2
keVAR_1
VAR_1
sumber
Python 2 ,
5047 byte-3 Bytes berkat officialaimm!
Cobalah online!
sumber
str
menghemat 3 byte.CJam , 12 byte
Cobalah online!
-1 berkat Business Cat .
Penjelasan:
sumber
,
APL (Dyalog) ,
107 byte3 byte golf berkat @ Adám dengan mengonversi ke tradfn dari kereta
Cobalah online!
sumber
+/⍎⌽⍕⍳⎕
¨
itu pintar :)Java 8, 97 byte
EDIT
Sesuai komentar
Kevin Cruijssen
, saya ingin meningkatkan jawaban saya.Java 8, 103 byte
sumber
Integer.valueOf
bisa bermain golfnew Integer
, dan.reverse().toString()
bisa bermain golf.reverse()+""
. Anda juga harus memasukkan impor dan parameter lambda yang diperlukan, sepertijava.util.stream.IntStream
dann->
sebelum itu. Dan Anda juga dapat bermain golfIntStream
&Integer
keLongStream
danLong
. Jawaban akhirnya adalahn->java.util.stream.LongStream.range(1,n+1).map(i->new Long(new StringBuffer(""+i).reverse()+"")).sum()
( 103 byte - Jawaban Anda saat ini dengan parameter impor dan lambda ditambahkan akan 117 byte .) Masih +1, jawaban yang bagus!Japt ,
75 byte-2 byte terima kasih kepada @Shaggy.
Cobalah online!
Penjelasan
Solusi lama, 7 byte
Menjaga ini karena ini adalah penggunaan yang sangat keren
z2
.Cobalah online!
Penjelasan
sumber
z2
pada array datar adalah sama denganw
, baiklah ... uhm ... maafkan ketidakmampuan saya di Japt ...õ_swÃx
terima kasih untuk penambahan baruN.s(f)
.õs xw
untuk 5 byte.z2
trik itu; itu sangat jenius. Perhatikan bahwa tidak bersaing bukan lagi suatu hal .C ++, 146 byte
sumber
auto
.auto
diperlukan kata kunciusing namespace std;
penghematan byte.Sekam ,
7 63 byteCobalah online!
Tidak Terikat / Penjelasan
sumber
Perl 5 ,
29 2722 + 1 (-p
) = 23 byteCobalah online!
sumber
map$r+=reverse,1..<>;say$r
.-p
RProgN 2 , 8 byte
Dijelaskan
Cobalah online!
sumber
Pyth ,
86 byte-2 byte terima kasih kepada FryAmTheEggman!
Cobalah online!
sumber
sms_`dS
,, yang tidak menyalahgunakan implisitU
di akhir.Tcl , 66 byte
Cobalah online!
sumber
Neim , 4 byte
Cobalah online!
Penjelasan
sumber
𝐈Ψ𝐫𝐬
(buat rentang inklusif, balikkan setiap elemen, jumlah)Ψ
token itu ada! pasti akan menggunakannya di belakang. real niceC (gcc) , 71 byte
Cobalah online!
sumber
f()
mengembalikan hasilnya tanpareturn
pernyataan? Apakahe=a
instruksi memanipulasi register sedemikian rupa sehingga hasilnya disimpan dalam register yang sama daripada yang digunakan oleh nilai yang dikembalikan?