aboutsummaryrefslogtreecommitdiff
path: root/challenge-102/abigail/perl/ch-2.pl
blob: 3073f155a83833eeb00d32538be634b3555b494d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/opt/perl/bin/perl

use 5.032;

use strict;
use warnings;
no  warnings 'syntax';

use experimental 'signatures';
use experimental 'lexical_subs';

#
# See ../README.md
#

#
# Run as: perl ch-2.pl < input-file
#

#
# Working from the end of the required string backwards, we alternate
# placing a hash, and placing a number. We place them in an array @out,
# and at the end, print out said array in reverse order.
#

while (my $index = <>) {
    chomp $index;
    my @out;
    my $hash = 0;
    while ($index) {
        if ($hash = !$hash) {
            push @out => "#";
            $index --;
        }
        else {
            push @out =>      $index + 1;
            $index -= length ($index + 1);
        }
    }
    say join "" => reverse @out;
}