# Weekly Challenge 106

I'm back after a few weeks away on holiday. Hope you haven't missed me :)

# TASK #1 › Maximum Gap

You are given an array of integers `@N`.

Write a script to display the maximum difference between two successive elements once the array is sorted.

If the array contains only 1 element then display `0`.

## My solution

This is relatively straight forward. After checking that all inputs are integers, I sort the array numerically. Then I use a foreach loop to find the maximum difference between each number.

## One liner

or as a one liner

``````» perl -E 'use List::Util "max"; my @a = sort { \$a <=> \$b } @ARGV; say max(0, map { \$a[\$_] - \$a[\$_-1] } (1 .. \$#a) )' 1 3 8 2 0
5
``````

## Examples

``````» ./ch-1.pl 2 9 3 5
4

» ./ch-1.pl 1 3 8 2 0
5

» ./ch-1.pl 5
0
``````

# TASK #2 › Decimal String

You are given numerator and denominator i.e. \$N and \$D.

Write a script to convert the fraction into decimal string. If the fractional part is recurring then put it in parenthesis.

## My solution

As I mentioned in a previous blog post, the last time I did serious algebra was in college about 25 years ago. These days there is a Wikipedia link on repeating decimals to help me.

For this task, I'm following the principle of doing long division to get to a point where we've already found a remainder. This indicates that we've found where a repetition pattern starts, and can add the parenthesis in the correct place. The Wikipedia page has an example of this, so I won't repeat it here.

## Examples

``````» ./ch-2.pl 1 3
0.(3)

» ./ch-2.pl 1 2
0.5

» ./ch-2.pl 5 66
0.0(75)
`````` After looking at other peoples solutions (which I only do after I submit my solution), it appears I don't handle the case of one negative number correct. -5 ÷ 74 results in `0.0(-6-7-5)`. I stuffed this one up, so Colin might consider this an invalid solution in his weekly write up, and I wouldn't disagree with that :)