Урок 1 · Задача 2

Кольцевой буфер поступлений на «Полке»

Для учёта последних восьми поступлений на «Полку» нужен кольцевой буфер фиксированного размера. Реализуйте методы Ring: Add добавляет значение и при переполнении перезаписывает старейшее, Sum возвращает сумму накопленных значений.

00:00:00
Показать решение
GolangРешение
func (r *Ring) Add(v int) {
	r.buf[r.head] = v
	r.head = (r.head + 1) % len(r.buf)
	if r.head == 0 {
		r.full = true
	}
}

func (r *Ring) Sum() int {
	total := 0
	for _, v := range r.buf {
		total += v
	}
	return total
}
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки