Odd Up, Even Down (Code Challenge)

  • Page Owner: Not Set
  • Last Reviewed: 2019-10-04

Odd Up, Even Down — N Times

Create a function that performs an even-odd transform to an array, n times. Each even-odd transformation:

Adds two (+2) to each odd integer. Subtracts two (-2) to each even integer.

Examples

evenOddTransform([3, 4, 9], 3) ➞ [9, -2, 15]
// Since [3, 4, 9] => [5, 2, 11] => [7, 0, 13] => [9, -2, 15]

evenOddTransform([0, 0, 0], 10) ➞ [-20, -20, -20]

evenOddTransform([1, 2, 3], 1) ➞ [3, 0, 5]

Notes

N/A

Tests

evenOddTransform([3, 4, 9], 3) == ([9, -2, 15])
evenOddTransform([0, 0, 0], 10) == ([-20, -20, -20])
evenOddTransform([1, 2, 3], 1) == ([3, 0, 5])
evenOddTransform([55, 90, 830], 2) == ([59, 86, 826])

Additional Posts

void Main()
{
	EvenOddTransform(new[] { 3, 4, 9 }, 3).Dump(); // ([9, -2, 15])
	EvenOddTransform(new[] { 0, 0, 0 }, 10).Dump(); // ([-20, -20, -20])
	EvenOddTransform(new[] { 1, 2, 3 }, 1).Dump(); // ([3, 0, 5])
	EvenOddTransform(new[] { 55, 90, 830}, 2).Dump(); // ([59, 86, 826])
}


public IList<int> EvenOddTransform(IList<int> list, int count)
{
	for(int index = 0; index < count; index++)
	{
		list = list.Select(i => i % 2 == 0 ? i - 2 : i + 2).ToList();
	}
	return (IList<int>) list;
}

The thing

Here is mine.

Javascript Golfing, 80 characters!

evenOddTransform = (x, y) => x.map(x => x % 2 == 0 ? x - (2 * y) : x + (2 * y));