Write a function named stretch
that accepts as a parameter an array of integers, and modifies it to be twice as large, replacing every
integer with a pair of integers, each half the original.
If a number in the original array is odd, then the first number in the new pair should be one higher than
the second so that the sum equals the original number.
For example, if an array named $arr
stores the values [18, 7, 4, 24, 11]
, the call of stretch($arr)
should change $arr
to contain [9, 9, 4, 3, 2, 2, 12, 12, 6, 5]
(the number 18 is stretched into the pair 9, 9, the number 7 is stretched into 4, 3, the number 4 is stretched into 2, 2, the number 24 is stretched into 12, 12, and 11 is stretched into 6, 5.)
Note: Because PHP integers are number types, dividing two integers which do not
divide evenly returns the decimal value of the result instead of an integer (for example, 1 / 2 results in 0.5, not 0).
Use intval(a / b)
to parse the result into an integer if needed to solve this problem.
A note about references in PHP: In order to write a function passes a parameter as
reference (thus modifying its state), you'll need to prepend "&" to the variable declaration
in the function header. For example, a function foo
that modifies the state
of an array parameter may be defined as:
function foo(&$arr) { ... }