Yang sederhana: Ambil daftar bilangan bulat positif sebagai input dan output angka-angka modulus indeks berbasis 1 mereka dalam daftar.
Jika bilangan bulat input {a, b, c, d, e, f, g}
maka output harus di {a%1, b%2, c%3, d%4, e%5, f%6, g%7}
mana %
adalah operator modulus.
Kasus uji:
10 9 8 7 6 5 4 3 2 1
0 1 2 3 1 5 4 3 2 1
8 18 6 11 14 3 15 10 6 19 12 3 7 5 5 19 12 12 14 5
0 0 0 3 4 3 1 2 6 9 1 3 7 5 5 3 12 12 14 5
1
0
1 1
0 1
Python 2 , 35 byte
Cobalah online!
Menghitung indeks secara manual, sesuai tip saya .
sumber
Jelly , 2 byte
Cobalah online!
Penjelasan:
Pada dasarnya, modulos daftar asli dengan daftar indeks.
sumber
%J
di Jelly, saya ingin tahu apakah ada yang menjawab dengan jawaban itu?". Saya kira orang lain memiliki ide yang sama :-DR,
2418 byteMengevaluasi fungsi:
Yang digunakan
seq_along()
untuk membuat vektor dengan panjang yang sama denganx
, mulai dari 1, dan kemudian%%
mengambil modulo.Perilaku default
seq
saat disajikan dengan vektor adalahseq(along.with = x)
output yang sama denganseq_along(x)
, tetapi 6 byte lebih pendek.sumber
seq(x)
adalah hal yang mudah untuk dimiliki, karena saya selalu menggunakan1:length(x)
.R, 27 byte
disimpan 5 byte berkat @Jarko
disimpan 4 lebih banyak berkat @Giuseppe
disimpan 2 lebih banyak berkat @Taylor Scott
Disimpan 2 lagi berkat @returnbull
sumber
' '
(spasi) di akhircat
; itulah pemisah defaultx<-scan();cat(x%%1:length(x)," ")
- oh dan beberapa tips memformat, 1) Anda hanya perlu 4 spasi di sebelah kiri kode Anda agar indentasi dan ditandai dengan benar 2) Anda dapat menambahkan sebuah<!-- language-all: lang-r -->
bendera sebelum kode Anda disorot (walaupun ini sedikit berubah dalam contoh ini) 3) Anda tidak perlu tanda kurung di sekitar nama bahasa Anda 4) oh dan Anda tidak perlu membuat komentar ketika Anda mengedit posting=
alih-alih<-
menyimpan byte. (2) Spesifikasi mengatakan "output" daripada "print", jadi Anda mungkin dapat menjatuhkancat()
, menghemat 5 byte. (3)sum(1|x)
lebih pendek satu byte darilength(x)
.APL (Dyalog) , 5 byte
Cobalah online!
⍳
indeks∘
dari≢
panjang argumen|
modulus itu⊢
argumensumber
(~T∊T∘.×T)/T←1↓⍳R ⍝ primes up to R
ataulife←{↑1 ω∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂ω} ⍝ Game of Life
(⊢~∘.×⍨)1↓⍳R
dan GoL (dalam Versi 16.0): diK∊⍨⊢∘⊂⌺3 3
mana K adalah konstanta.Cubix , 19 byte
Cobalah online!
Tonton Jalankan
Implementasi yang cukup lurus ke depan.
1
dorong 1 ke tumpukan untuk memulai indeksI!@
dapatkan input integer dan hentikan jika 0s%Ow
menukar indeks, mod, hasil keluaran dan ubah jalur;)
hapus indeks hasil dan kenaikanSow
tekan 32, ruang output dan ganti jalur (turun dari o)$O
lompat outputw;w
ganti lange, hapus 32 dari tumpukan dan ubah jalur keI
inputsumber
05AB1E , 2 byte
Cobalah online! atau Coba semua tes
sumber
DgL%
, menyenangkan.gL%
karena saya lupaā
.ā
bagi saya? Saya percaya saya tidak pernah menggunakannya, hanya sepertifor each
tetapi dengan1 to n+1
cara sepertivy<code>})
tetapi tersiratvy<code>})
?gL
. TIOMathematica, 22 byte
Satu lagi pendekatan Mathematica.
sumber
MapIndexed@Mod
sudah hampir cukup baik: '(Starry ,
7570 byteCobalah online!
Penjelasan
Ini adalah infinite loop yang terus membaca angka dari input dan meningkatkan penghitung yang diinisialisasi pada
1
. Untuk setiap pasangan input dan penghitung, modulus dihitung dan dicetak.Untuk mengakhiri loop ketika input telah habis, trik berikut ini digunakan. Ketika tidak ada lagi input yang tersedia, mencoba membaca satu nomor lagi memberi a
0
. Dengan demikian, kami membagi angka baca dengan sendirinya, dan jika itu0
program berakhir dengan kesalahan. Kalau tidak, kita membuang hasilnya dan melanjutkan.sumber
MATL ,
4, 3 byteCobalah online!
Satu byte disimpan berkat @LuisMendo!
sumber
Brachylog , 9 byte
Cobalah online!
Penjelasan
sumber
Japt,
54 byteCobalah
Penjelasan
sumber
®%°T
(sebenarnya, Anda masih bisa menggunakannya diY
sana jika Anda mau)R, 22 byte
R melakukan 1: panjang (x) sebelum melakukan modulus.
sumber
sum(x|1)
!seq()
bukannyaseq_along()
melakukan hal yang sama. Jadi itu beberapa byte lebih pendek lagi.Python 2 , 42 byte
Cobalah online!
sumber
for
lambda l:[v%-~i for i,v in enumerate(l)]
lambda l:[v%i for i,v in enumerate(l,1)]
,.Haskell, 22 byte
Cobalah online!
Juga:
flip(zipWith mod)[1..]
.sumber
Mathematica, 21 byte
Cobalah online!
atau 20 byte (oleh Martin)
sumber
Tr[1^#]
untukLength@#
.#
sebagai karakter terakhir kedua dalam jawaban pertama Anda.Excel VBA,
5946 BytesGolf
VBE Anonim Funtion jendela langsung yang mengambil spasi (
) string array terbatas sebagai input dari rentang
[A1]
dan menampilkan angka-angka modulus indeks berbasis 1 mereka dalam daftar awal ke jendela langsung VBEInput output:
Sub
Versi rutin lamaSubrutin yang mengambil input sebagai array yang lulus dan keluar ke jendela langsung VBE.
Input / Ouput:
Tidak disatukan
Input output:
sumber
CJam , 9 byte
Blok anonim yang mengharapkan array pada stack dan menggantinya dengan output array.
Cobalah online!
Penjelasan
sumber
J, 9 byte
1 ... n | daftar asli
|
adalah modsumber
JavaScript (ES6), 22 byte
sumber
AWK, 13
Cobalah online .
sumber
tcl, 35
demo
sumber
GNU APL 1.2, 9 byte
APL beroperasi dari kanan ke kiri, karenanya tanda kurung.
R←⎕
menetapkan input pengguna ke vektorR
.⍴R
memberikan panjang vektor;⍳⍴R
memberikan vektor dengan semua angka dari 1 ke panjang itu (jadi indeks).|
adalah mod operator (a|b
hasilb%a
). APL beroperasi pada array, sehingga kode potongan vektor yang berisi setiap elemen dari input mod pengguna indeksnya.sumber
Pari / GP , 22 byte
Cobalah online!
sumber
Pyth, 5
Tes online .
sumber
Oktaf , 19 byte
Cobalah online!
Fungsi anonim yang mengambil n sebagai input, dan melakukan modulus elemen-bijaksana dengan daftar 1, 2, 3 .
sumber
Braingolf , 18 byte
Cobalah online!
Penjelasan
sumber
Java 8 / C #, 39 byte
Coba di sini.
Juga berfungsi di C # dengan mengganti
->
dengan=>
danlength
denganLength
:Coba di sini.
Penjelasan:
Memodifikasi input-array, karenanya tidak ada pengembalian.
sumber
->
ke=>
dan memanfaatkanlength
.