Task 26. Преобразование массива путем произведения всех значений

Task 26. Преобразование массива путем произведения всех значений

UniLecs

Задача: дан массив с целыми числами. Написать функцию, ктр преобразует массив следующим образом: каждое i-е значение массива это произведение всех значений исходного массива за исключением i-го значения. В решении нельзя использовать операцию деления. 

Например, на входе [ 2, 4, 3, 5 ]

на выходе [ 4*3*5, 2*3*5, 2*4*5, 2*4*3 ] = [ 60, 30, 40, 24 ]

Идея: так как нельзя использовать деление, то мы пройдем по массива два раза. В первый раз мы будем получать произведение всех чисел до текущего элемента. При втором проходе - произведение всех чисел после текущего элемента, идя с конца массива. Затем мы перемножим значения соот-х индексов и получим результирующий массив (см. схематический рисунок для наглядности)

схема преобразования массива

Реализация:

реализация на JS

https://gist.github.com/unilecs/be04395d8d3993b7d2b7bc7e69d4429f

Report Page