Untuk daftar nomor tertentu temukan digit terakhir dari Contoh:x x x … x n 3 2 1
[3, 4, 2] == 1
[4, 3, 2] == 4
[4, 3, 1] == 4
[5, 3, 2] == 5
Karena .
Karena .
Karena .
Karena .
Aturan:
Ini adalah kode golf, jadi jawabannya dengan byte paling sedikit menang.
Jika bahasa Anda memiliki batasan ukuran bilangan bulat (mis. ) n akan cukup kecil sehingga jumlahnya akan cocok dengan bilangan bulat.
Input dapat berupa bentuk yang wajar (stdin, file, parameter baris perintah, integer, string, dll).
Output dapat berupa bentuk yang masuk akal (stdout, file, elemen pengguna grafis yang menampilkan nomor, dll).
Melihat perang kode.
number
s. Apakah maksud Anda bilangan bulat positif secara eksklusif? Itulah yang saya rasakan bagaimana itu ditafsirkan.[999999,213412499,34532599,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
valid dan hasilnya harus1
Jika demikian, ini perlu dibuat lebih jelas dalam pertanyaan karena Anda telah memutakhirkan jawaban yang tidak menyelesaikan ini (petunjuk - pindahkan bagianmod
dalam loop). Mungkin menambahkan beberapa contoh yang membuat ini jelas.9
. Skema pengurangan angka yang diperlukan untuk mengimplementasikan ini jauh lebih menarik daripada jawaban aktual yang telah dikumpulkan masalah ini.Jawaban:
JavaScript (ES7), 22 byte
Terbatas untuk .253- 1
Cobalah online!
sumber
**
adalah operator eksponensial JavaScript. Sisanya cukup mudah.a.join`**`
sama dengana.join(['**'])
dan['**']
dipaksa'**'
olehjoin
metode.n % 10
akan mengembalikan digit terakhirn
R , 25 byte
Cobalah online!
sumber
Reduce
sedang digunakan.Haskell, 19 byte
Cobalah online!
sumber
HP 49G RPL, 36,5 byte
Jalankan dalam mode APPROX (tetapi masukkan program dalam mode EXACT). Mengambil input pada stack dengan elemen pertama terdalam di stack, sebagai integer atau real.
Ini langsung eksponensial pada stack seperti dalam solusi Sophia sampai ada satu nilai yang tersisa, lalu bawa mod 10 untuk mendapatkan digit terakhir.
Alasan saya menggunakan APPROX untuk perhitungan adalah karena 0,0 ^ 0,0 = 1 (ketika keduanya adalah real), tetapi 0 ^ 0 =? (ketika keduanya bilangan bulat). APPROX memaksa semua bilangan bulat ke real, jadi inputnya boleh saja. Namun, saya menggunakan EXACT untuk masuk ke program karena 10 (integer) disimpan digit-demi-digit, dan 6,5 byte, tetapi 10,0 (nyata) disimpan sebagai bilangan real penuh, dan 10,5 byte. Saya juga menghindari penggunaan pengurangan RPL (disebut STREAM) karena memperkenalkan objek program tambahan, yaitu 10 byte overhead. Saya sudah punya satu dan tidak mau yang lain.
Terbatas pada presisi HP 49G nyata (12 angka desimal)
-10 byte setelah daftar kosong -> 1 persyaratan telah dihapus.
-2 byte dengan mengambil input pada stack.
sumber
dc ,
1715 byteCobalah online!
Mengambil input dari stack, output ke stack. Implementasi yang sangat mudah - eksponensial hingga hanya satu nilai yang tersisa di stack dan mod untuk digit terakhir.
Terima kasih kepada brhfl untuk menghemat dua byte!
sumber
10%
keA%
, dan satu lagi byte dengan tidak memeriksa kedalaman tumpukan dua kali - hanya menempatkan1
di atas tumpukan sebelum mengeksekusi sejak ^ 1 == n n:1[^z1<M]dsMxA%
A
sebagai literal sementara diatur ke input desimal. @ Brhfl terima kasih!J , 5 byte
-3 byte terima kasih kepada cole!
Cobalah online!
sumber
10|^/
bekerja05AB1E , 4 byte
Cobalah online!
Penjelasan
sumber
E
di header)..V
..«mθ
lebih mirip potongan, karena, dengan sendirinya, Anda tidak dapat menetapkannya ke variabel untuk digunakan kembali nanti. Nah, Adnan sekarang memperbaiki masalahnya, tapi eh.Pure Bash (hanya builtin - tidak ada utilitas eksternal), 21
Input diberikan pada baris perintah sebagai daftar yang dipisahkan koma.
Bash integer tunduk pada batas bilangan bulat yang ditandatangani normal untuk versi 64-dan 32-bit.
Cobalah online!
sumber
^
adalah XOR bitwise, itulah sebabnya Anda5
keluar dari kasus uji alih-alih yang benar1
. Anda harus menambahkan byte untuk beralih ke**
^
merangkak masuk - saya punya**
di iterasi sebelumnya siklus dev saya.Bahasa Wolfram (Mathematica) , 16 byte
Cobalah online!
sumber
Python 2 dan Python 3 , 30 byte
Cobalah online!
Input
N
diharapkan menjadi objek yang dapat diulang lebih dari representasi string dari literal angka .sumber
Ruby,
4147 bytePeningkatan ukuran karena penanganan 0 dalam array input, yang perlu pertimbangan ekstra. Terimakasih untuk
rewritten
Ini diselesaikan karena saya percaya sumber asli yang dimaksudkan, yaitu untuk eksponensial yang sangat besar yang tidak akan cocok dengan bilangan bulat asli bahasa - batasannya adalah array akan dijumlahkan
2**32-1
, bukan karena perhitungan sementara juga dijamin sesuai. Bahkan itu tampaknya akan menjadi titik tantangan pada Perang Kode Meskipun bilangan bulat asli Ruby bisa menjadi sangat besar, mereka tidak dapat mengatasi contoh di bawah ini yang diproses secara naif dengan% 10 di akhirMisalnya
Memasukkan:
[999999,213412499,34532597,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
Keluaran:
9
sumber
n**(t%4+4)
dengan yangn**((t-1)%4+1)
Anda dapatkann**1
alih-alihn**5
dll. Kudos untuk pengamatan bahwa pada setiap tahap 4 akan menjadi siklus yang baik.n<2?n:
sebelumnyan**
.05AB1E , 8 byte
Cobalah online!
sumber
...gGm}10%
(atau sesuatu yang golf).Perl 6 , 14 byte
Cobalah online!
Menggunakan kurung meta pengurangan dengan operator **, modulo 10.
sumber
APL (Dyalog Unicode) , 5 byte
Cobalah online!
sumber
C # (.NET Core) , 84 byte
Cobalah online!
sumber
a
dan dengan menggabungkan kondisi loop dengan decrement (for(var i=a.Lengt-1;i-->0;)
). Tetapi -using
pernyataan harus dimasukkan dalam hitungan byte.C (gcc) , 56
Fungsi rekursif
r()
dipanggil dari makrof
- batas stack normal berlaku.Input diberikan sebagai array int nol-dihentikan. Ini dengan asumsi bahwa tidak ada x n yang nol.
Cobalah online!
sumber
) r(
->)r(
.r(int*n){return pow
untukR;r(int*n){R=pow
.Julia 0,6 , 30 byte
Cobalah online!
Ini adalah fungsi anon
∘ adalah operator komposisi.
Ini adalah beberapa byte
sumber
Japt
-h
, 7 byteCobalah online!
Penjelasan:
sumber
Japt
-h
,76 byteJika input dapat diambil dalam urutan terbalik maka karakter pertama dapat dihapus.
Terbatas untuk
2**53-1
.Cobalah
Penjelasan
sumber
Jelly , 6 byte
Cobalah online!
sumber
Python 2 ,
4543 byteCobalah online!
sumber
Excel VBA, 60 byte
Fungsi jendela langsung VBE anonim yang mengambil input dari jangkauan
[A1:XFD1]
sumber
Stax , 7 byte
Jalankan dan debug itu
Algoritma seperti pada jawaban Python saya
sumber
CJam , 14 byte
Harus bekerja untuk input apa pun, karena CJam tidak terbatas pada integer 64 bit
Cobalah online!
sumber
Python 3 , 55 byte
Versi yang lebih lama
sumber
p=lambda...
? Python tidak dapat menangani lambdas anonim rekursif, jadi jika Anda ingin fungsi Anda dinamai, itu harus menjadi bagian dari solusi Anda, dan penamaannya dihitung terhadap jumlah byte Anda untuk tantangan kode-golf.Python 3 , 47 byte
Cobalah online!
sumber
Brain-Flak , 161 byte
Termasuk +1 untuk
-r
Cobalah online!
Contohnya
[3, 4, 2]
membutuhkan waktu lebih dari 60 detik, sehingga tautan TIO digunakan[4, 3, 2]
.The
-r
dapat dihapus jika input dapat diambil dalam urutan terbalik untuk menghitung byte dari 160.sumber
Pari / GP , 32 byte
Cobalah online!
sumber
Z80Golf , 36 byte
Cobalah online!
Harness uji brute-force
Mengambil input sebagai byte mentah. Terbatas untuk 2 ** 8-1.
Penjelasan
sumber
Ruby ,
2420 byteCobalah online!
sumber