Gasoid / last-task-go-contest-2020

Репо для проверки последнего задания

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Telegram группа

https://t.me/ozon_go_contest2020

Этот репозиторий никак не связан с ozon

Репо для проверки последнего задания

  • git clone git@github.com:Gasoid/last-task-go-contest-2020.git
  • добавляйте свою функцию в main.go
  • запуск теста go test . -v

Задание

Необходимо написать функцию func Merge2Channels(f func(int) int, in1 <-chan int, in2 <- chan int, out chan<- int, n int) в package main.

Описание ее работы:

n раз сделать следующее:

  • прочитать по одному числу из каждого из двух каналов in1 и in2, назовем их x1 и x2.
  • вычислить f(x1) + f(x2)
  • записать полученное значение в out

Функция Merge2Channels должна быть неблокирующей, сразу возвращая управление.

Функция f может работать долгое время, ожидая чего-либо или производя вычисления.

Формат ввода

Количество итераций передается через аргумент n. Целые числа подаются через аргументы-каналы in1 и in2.

Функция для обработки чисел перед сложением передается через аргумент f.

Формат вывода

Канал для вывода результатов передается через аргумент out.

Примечания

Отправлять задачу необходимо под компилятором Make. Решения, выдающие неверный ответ, могут по техническим причинам получать вердикт Runtime Error. Медленные решения получают вердикт Idleness Limit, стоит рассматривать это как превышение времени исполнения.

About

Репо для проверки последнего задания


Languages

Language:Go 100.0%