Saya punya tantangan sederhana untuk Anda saat ini. Mengingat sebuah array bilangan bulat positif A (atau setara dalam bahasa Anda), ganti setiap entri A i dengan jumlah berikutnya A i unsur A , bersepeda kembali dari awal jika tidak ada cukup item.
Seperti biasa, Anda dapat bersaing dalam bahasa pemrograman apa pun dan dapat mengambil input dan memberikan output melalui metode standar apa pun dan dalam format apa pun yang wajar, sambil memperhatikan bahwa celah ini dilarang secara default. Anda juga dapat mengambil ukuran A sebagai input. Ini adalah kode-golf , jadi pengiriman terpendek (dalam byte) untuk setiap bahasa menang.
Contoh / Kasus Uji
Diberikan [1,3,4,5]
, kode Anda harus di-output [3,10,13,14]
, karena 1
digantikan oleh 3
, 3
digantikan oleh 4+5+1=10
(perhatikan bagaimana kode itu dibungkus kembali dari awal), 4
oleh 5+1+3+4=13
dan 5
oleh 1+3+4+5+1=14
.
Mengingat [3,2,1,9]
, program Anda harus menghasilkan [12,10,9,33]
, karena kami mengganti 3
dengan 2+1+9=12
, 2
dengan 1+9=10
, 1
dengan 9
dan 9
dengan 3+2+1+9+3+2+1+9+3=33
(perhatikan bagaimana kami kembali dari awal lebih dari sekali).
Beberapa kasus uji lagi untuk Anda pilih:
[4,3,2,1] -> [10,7,5,4]
[3,2,1,9] -> [12,10,9,33]
[1,3,4,5] -> [3,10,13,14]
[4,4,3,2,2] -> [11,11,8,6,8]
[3,5,3,2,1] -> [10,14,6,4,3]
[3,2,4,3,2,1,1] -> [9,7,7,4,2,1,3]
[7,8,6,5,4,3,2,1,5] -> [29,33,20,15,11,8,6,5,30]
[28,2,4,2,3,2,3,4,5,3] -> [137,6,10,5,9,7,12,38,39,34]
[1,2,3,4,5,4,3,2,1,2,3,4,3,2,1] -> [2,7,13,14,12,8,5,3,2,7,9,7,4,2,1]