# CodeStepByStep

## merge_digit_pairs

Language/Type: PHP recursion

Write a recursive function named `merge_digit_pairs` that accepts an integer parameter `\$n` and returns the integer formed by combining each pair of digits from \$n integers a single digit that is their sum. For example, if passed the number 1234, you should combine the digits 12 into 1+2 or 3, and combine the digits 34 into 3+4 or 7, leading to a returned result of 37.

If adding a given pair of digits produces a two-digit number, repeat the process until you have a single-digit number to replace the original pair. For example, if passed the number `1168`, the 11 becomes 1+1 or 2, but the 68 becomes 6+8 or 14, so we merge them again by saying that 14 is 1+4 or 5, so the pair 68 turns into 5, leading to an overall result of 25.

If passed a number with an odd number of digits, the first (most significant) digit is left untouched. For example, the number `13372` becomes `169` because the 3+3 becomes 6 and the 7+2 becomes 9. If passed a negative number, perform the same process as usual but return a negative result. For example, when passed `-1234`, return -37. If passed a single-digit number, simply return that number itself.

The following table shows several calls and their expected return values:

Call Return Value
`merge_digit_pairs(1234)` `37`
`merge_digit_pairs(3186507)` `3927`
`merge_digit_pairs(-52874)` `-512`
`merge_digit_pairs(88888888)` `7777`
`merge_digit_pairs(20581974)` `2412`
`merge_digit_pairs(0)` `0`
`merge_digit_pairs(6)` `6`
`merge_digit_pairs(6)` `-5`

Constraints:

• Do not declare any global variables.
• Do not use any loops; you must use recursion.
• Do not use any auxiliary data structures (e.g. arrays) or strings to solve this problem.
• You can declare as many primitive variables (e.g. integers) as you like.
• You are allowed to define other "helper" functions if you like; they are subject to these same constraints.
Function: Write a PHP function as described, not a complete program.