From the Ruby Forum: http://www.ruby-forum.com/topic/156473#new
There is an array A[N] of N integers. You have to compose an array Output[N] such that Output[i] will be equal to the product of all the elements of A[] except A[i]. Example: INPUT:[4, 3, 2, 1, 2] OUTPUT:[12, 16, 24, 48, 24] Note: Solve it without the division operator and in O(n).Here is my Python version. Note any difference between this implementation and those discussed in the Ruby Forum?
# http://www.ruby-forum.com/topic/156473#new _input = [4, 3, 2, 1, 2] after = [] before = [] t = 1 for x in _input: before.append(t) t *= x t = 1 for x in reversed(_input): after.append(t) t *= x after.reverse() for x, y in zip(before, after): print x * y