aboutsummaryrefslogtreecommitdiff
path: root/challenge-152/andinus
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-02-14 08:00:00 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-02-14 08:00:00 +0000
commit83a60a3be16f74882801abfea7f376f320db2a5e (patch)
treee34853e721cf25f454c847b951ac6fec9cd233f1 /challenge-152/andinus
parentc3e5809f848c7d77e0f3a2fe5dca93f85244558b (diff)
downloadperlweeklychallenge-club-83a60a3be16f74882801abfea7f376f320db2a5e.tar.gz
perlweeklychallenge-club-83a60a3be16f74882801abfea7f376f320db2a5e.tar.bz2
perlweeklychallenge-club-83a60a3be16f74882801abfea7f376f320db2a5e.zip
- Added template for week 152.
Diffstat (limited to 'challenge-152/andinus')
-rw-r--r--challenge-152/andinus/README51
1 files changed, 51 insertions, 0 deletions
diff --git a/challenge-152/andinus/README b/challenge-152/andinus/README
new file mode 100644
index 0000000000..bd1dd6e3ce
--- /dev/null
+++ b/challenge-152/andinus/README
@@ -0,0 +1,51 @@
+ ━━━━━━━━━━━━━━━
+ CHALLENGE 135
+
+ Andinus
+ ━━━━━━━━━━━━━━━
+
+
+ 2021-10-22
+
+
+
+
+
+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);
+ └────