Jumlah kumulatif vektor dihitung dengan hanya mengambil jumlah semua elemen sebelumnya. Contohnya:
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 3 2 1 0 -1 -2 -1 0 1 2 1]
Sekarang, tetapkan batas atas dan bawah, artinya Anda berhenti menambah jumlah kumulatif jika berada di batas atas, dan berhenti mengurangi jumlah kumulatif jika berada di batas bawah. Contoh sederhana:
upper_lim = 2
lower_lim = -1
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 2 1 0 -1 -1 -1 0 1 2 2 1]
Vektor input terdiri dari bilangan bulat, tidak harus hanya 1
dan -1
, baik positif maupun negatif. Asumsikan itu upper_lim >= lower_lim
. Jika elemen pertama vektor berada di luar batas, lompat langsung ke batas (lihat contoh terakhir).
Tulis fungsi yang mengambil vektor bilangan bulat sebagai input, dan dua bilangan bulat yang mewakili batas atas dan bawah. Keluarkan vektor kumulatif terbatas, seperti yang didefinisikan di atas. Input dapat berupa argumen fungsi atau dari STDIN.
Aturan golf kode standar berlaku.
Contoh:
upper_lim = 6
lower_lim = -2
vec = [1 4 3 -10 3 2 2 5 -4]
cum_vec = [1 5 6 -2 1 3 5 6 2]
upper_lim = 100
lower_lim = -100
vec = [1 1 1 1 1 1]
cum_vec = [1 2 3 4 5 6]
upper_lim = 5
lower_lim = 0
vec = [10 -4 -3 2]
cum_vec = [5 1 0 2]
upper_lim = 0
lower_lim = 0
vec = [3 5 -2 1]
cum_vec = [0 0 0 0]
upper_lim = 10
lower_lim = 5
vec = [1 4 6]
cum_vec = [5 9 10]
|
Note, jumped to 5, because 5 is the lower bound.
sumber