Challenge 135
Task 1 - Middle 3-digits
You are given an integer.
Write a script find out the middle 3-digits of the given integer, if possible otherwise throw sensible error.
Input: $n = 1234567 Output: 345 Input: $n = -123 Output: 123 Input: $n = 1 Output: too short Input: $n = 10 Output: even number of digits
Raku
Input's absolute value is taken because the sign is meaningless here. To
get middle 3-digits we take 3 digits from $n.chars div 2 - 1
position,
-1
because Arrays are 0-indexed. It's guaranteed that we have odd number
of digits so div 2
will land us on left of middle digit, we just take 3
digits from there.
$n = abs $n; die "too short" if $n.chars < 3; die "even number of digits" if $n.chars %% 2; put $n.substr($n.chars div 2 - 1, 3);