aboutsummaryrefslogtreecommitdiff
path: root/challenge-102/paulo-custodio/python/ch-2.py
blob: 558367a4226b56e810089521c888097884879b0d (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
42
43
44
#!/usr/bin/env python

# Challenge 102
#
# TASK #2 > Hash-counting String
# Submitted by: Stuart Little
#
# You are given a positive integer $N.
#
# Write a script to produce Hash-counting string of that length.
#
# The definition of a hash-counting string is as follows:
# - the string consists only of digits 0-9 and hashes, '#'
# - there are no two consecutive hashes: '##' does not appear in your string
# - the last character is a hash
# - the number immediately preceding each hash (if it exists) is the position
# of that hash in the string, with the position being counted up from 1
#
# It can be shown that for every positive integer N there is exactly one such
# length-N string.
# Examples:
#
# (a) "#" is the counting string of length 1
# (b) "2#" is the counting string of length 2
# (c) "#3#" is the string of length 3
# (d) "#3#5#7#10#" is the string of length 10
# (e) "2#4#6#8#11#14#" is the string of length 14

import sys

def hash_counting(n):
    out = ''
    i = n
    while i>0:
        p = i
        out = '#'+out
        i -= 1
        while i>0 and p!=0:
            out = str(p % 10)+out
            i -= 1
            p = int(p/10)
    return out

print(hash_counting(int(sys.argv[1])))